python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表
前言:寫小程序時(shí),遇到個(gè)需要自定義回歸時(shí)間的場景,下面是實(shí)現(xiàn)的效果圖。
于我需求而言,我只需要用到fixed_interval、weekly、per_month三個(gè)方法返回的回歸間隔列表就行,最后的這個(gè)make_date_from_list方法,是為了能在這里展示效果
TIP:沒有做異常處理,以及時(shí)間格式化之類的。這里只是拋磚引玉給個(gè)原型磚頭出來。
實(shí)現(xiàn)代碼:
class GetStrategyDedail: today = datetime.date.today() def __init__(self, begin_date, end_date): self.begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d") self.end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d") def fixed_interval(self, num): """ 固定間隔的類型,直接使用間隔數(shù)字 :param num:間隔的天數(shù) :return:不同時(shí)間段內(nèi),對應(yīng)策略的執(zhí)行時(shí)間間隔列表 """ detail_list = list() date_num = (self.end_date - self.begin_date).days for i in range(num, date_num+1, num): detail_list.append(i) detail_list.insert(0, 0) return detail_list def weekly(self, i, weeks=1): """ 每周xx,每月xx的數(shù)據(jù)類型 :param i:0-星期一,1-星期二,2-星期三,3-星期四,4-星期五,5-星期六,6-星期日 :param weeks:間隔周數(shù),默認(rèn)間隔一周 :return:不同時(shí)間段內(nèi),對應(yīng)策略的執(zhí)行時(shí)間間隔列表 """ while self.begin_date.weekday() != i: self.begin_date += datetime.timedelta(days=1) num = (self.begin_date.date() - self.today).days fixed_list = self.fixed_interval(weeks * 7) fixed_list.insert(0, num) return fixed_list def per_month(self, date): """ date:指定要獲取的每個(gè)月的日期 :return:不同時(shí)間段內(nèi),對應(yīng)策略的執(zhí)行時(shí)間間隔列表 """ date_list = list() specific_list = list() year = self.begin_date.year begin_month = self.begin_date.month end_month = self.end_date.month day = self.end_date.day while begin_month <= end_month: designated_date = f'{year}-{begin_month}-{date}' date_list.append(datetime.datetime.strptime(designated_date, "%Y-%m-%d")) begin_month += 1 for specific_date in date_list: num = (specific_date.date() - self.today).days if num > 0: specific_list.append(num) if day < date: specific_list.pop() return specific_list def make_date_from_list(self, num, interval=1, mode='day'): """ :param interval: 間隔的周數(shù),默認(rèn)為1(每周) :param num:根據(jù)mode來區(qū)分,分表代表:間隔的天數(shù),周幾(0-6/周一-周日),指定的月日期 :param mode:day, week, month :return: 不同時(shí)間段內(nèi),對應(yīng)策略的執(zhí)行時(shí)間間隔列表 """ date_list = list() if mode == 'day': details_list = self.fixed_interval(num) elif mode == 'week': details_list = self.weekly(num, interval) elif mode == 'month': details_list = self.per_month(num) first_date = self.today + datetime.timedelta(details_list[0]) if mode == 'day': for i in details_list: date = self.begin_date.date() + datetime.timedelta(i) date_list.append(date.isoformat()) elif mode == 'month': for i in details_list: date = self.today + datetime.timedelta(i) date_list.append(date.isoformat()) else: for i in details_list[1:]: date = first_date + datetime.timedelta(i) date_list.append(date.isoformat()) return date_list
到此這篇關(guān)于python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表的文章就介紹到這了,更多相關(guān)python獲取指定時(shí)間段內(nèi)日期列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 自動(dòng)在Windows中運(yùn)行Python腳本并定時(shí)觸發(fā)功能實(shí)現(xiàn)
- 實(shí)現(xiàn)Windows下設(shè)置定時(shí)任務(wù)來運(yùn)行python腳本
- 如何給windows設(shè)置定時(shí)任務(wù)并運(yùn)行python腳本
- python 實(shí)現(xiàn)定時(shí)任務(wù)的四種方式
- python中用Scrapy實(shí)現(xiàn)定時(shí)爬蟲的實(shí)例講解
- Python爬蟲定時(shí)計(jì)劃任務(wù)的幾種常見方法(推薦)
- python實(shí)現(xiàn)定時(shí)發(fā)送郵件到指定郵箱
- python實(shí)現(xiàn)定時(shí)發(fā)送郵件
- python腳本定時(shí)發(fā)送郵件
- Python實(shí)現(xiàn)FTP文件定時(shí)自動(dòng)下載的步驟
- python爬蟲調(diào)度器用法及實(shí)例代碼
- scrapy處理python爬蟲調(diào)度詳解
- 簡單的Python調(diào)度器Schedule詳解
- python編寫網(wǎng)頁爬蟲腳本并實(shí)現(xiàn)APScheduler調(diào)度
- Python使用定時(shí)調(diào)度任務(wù)的方式
相關(guān)文章
Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程)
這篇文章主要介紹了Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程),需要的朋友可以參考下2019-11-11Python使用LSTM實(shí)現(xiàn)銷售額預(yù)測詳解
大家經(jīng)常會(huì)遇到一些需要預(yù)測的場景,比如預(yù)測品牌銷售額,預(yù)測產(chǎn)品銷量。本文給大家分享一波使用?LSTM?進(jìn)行端到端時(shí)間序列預(yù)測的完整代碼和詳細(xì)解釋,需要的可以參考一下2022-07-07Python排序方法中sort和sorted的區(qū)別詳解
在python中常用的排序函數(shù)就是sort()和sorted()這兩個(gè)函數(shù),使用 sort() 或內(nèi)建函數(shù) sorted() 對列表進(jìn)行排序,本文將詳細(xì)介紹sorted和sort兩者之間的區(qū)別,感興趣的可以了解一下2023-08-08Pytorch中如何調(diào)用forward()函數(shù)
這篇文章主要介紹了Pytorch中如何調(diào)用forward()函數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Python實(shí)現(xiàn)對excel文件列表值進(jìn)行統(tǒng)計(jì)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)對excel文件列表值進(jìn)行統(tǒng)計(jì)的方法,涉及Python基于win32com組件操作表格文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07