python獲取指定時間段內特定規(guī)律的日期列表
更新時間:2021年04月01日 10:42:33 作者:JACK_ChenH
這篇文章主要介紹了python獲取指定時間段內特定規(guī)律的日期列表,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
前言:寫小程序時,遇到個需要自定義回歸時間的場景,下面是實現(xiàn)的效果圖。
于我需求而言,我只需要用到fixed_interval、weekly、per_month三個方法返回的回歸間隔列表就行,最后的這個make_date_from_list方法,是為了能在這里展示效果
TIP:沒有做異常處理,以及時間格式化之類的。這里只是拋磚引玉給個原型磚頭出來。

實現(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:不同時間段內,對應策略的執(zhí)行時間間隔列表
"""
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ù),默認間隔一周
:return:不同時間段內,對應策略的執(zhí)行時間間隔列表
"""
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:指定要獲取的每個月的日期
:return:不同時間段內,對應策略的執(zhí)行時間間隔列表
"""
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ù),默認為1(每周)
:param num:根據(jù)mode來區(qū)分,分表代表:間隔的天數(shù),周幾(0-6/周一-周日),指定的月日期
:param mode:day, week, month
:return: 不同時間段內,對應策略的執(zhí)行時間間隔列表
"""
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
到此這篇關于python獲取指定時間段內特定規(guī)律的日期列表的文章就介紹到這了,更多相關python獲取指定時間段內日期列表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
- 自動在Windows中運行Python腳本并定時觸發(fā)功能實現(xiàn)
- 實現(xiàn)Windows下設置定時任務來運行python腳本
- 如何給windows設置定時任務并運行python腳本
- python 實現(xiàn)定時任務的四種方式
- python中用Scrapy實現(xiàn)定時爬蟲的實例講解
- Python爬蟲定時計劃任務的幾種常見方法(推薦)
- python實現(xiàn)定時發(fā)送郵件到指定郵箱
- python實現(xiàn)定時發(fā)送郵件
- python腳本定時發(fā)送郵件
- Python實現(xiàn)FTP文件定時自動下載的步驟
- python爬蟲調度器用法及實例代碼
- scrapy處理python爬蟲調度詳解
- 簡單的Python調度器Schedule詳解
- python編寫網(wǎng)頁爬蟲腳本并實現(xiàn)APScheduler調度
- Python使用定時調度任務的方式
相關文章
Python排序方法中sort和sorted的區(qū)別詳解
在python中常用的排序函數(shù)就是sort()和sorted()這兩個函數(shù),使用 sort() 或內建函數(shù) sorted() 對列表進行排序,本文將詳細介紹sorted和sort兩者之間的區(qū)別,感興趣的可以了解一下2023-08-08
Python實現(xiàn)對excel文件列表值進行統(tǒng)計的方法
這篇文章主要介紹了Python實現(xiàn)對excel文件列表值進行統(tǒng)計的方法,涉及Python基于win32com組件操作表格文件的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07

