欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表

 更新時(shí)間:2021年04月01日 10:42:33   作者:JACK_ChenH  
這篇文章主要介紹了python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言:寫小程序時(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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python中的?type()函數(shù)

    詳解Python中的?type()函數(shù)

    type()是一個(gè)內(nèi)置函數(shù),可以很方便地查詢對象數(shù)據(jù)類型;主要有兩種用法:一個(gè)參數(shù)和三個(gè)參數(shù),這篇文章主要介紹了Python中的?type()函數(shù),需要的朋友可以參考下
    2022-08-08
  • python對常見數(shù)據(jù)類型的遍歷解析

    python對常見數(shù)據(jù)類型的遍歷解析

    這篇文章主要介紹了python對常見數(shù)據(jù)類型的遍歷解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程)

    Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程)

    這篇文章主要介紹了Python全局鎖中如何合理運(yùn)用多線程(多進(jìn)程),需要的朋友可以參考下
    2019-11-11
  • Python使用LSTM實(shí)現(xiàn)銷售額預(yù)測詳解

    Python使用LSTM實(shí)現(xiàn)銷售額預(yù)測詳解

    大家經(jīng)常會(huì)遇到一些需要預(yù)測的場景,比如預(yù)測品牌銷售額,預(yù)測產(chǎn)品銷量。本文給大家分享一波使用?LSTM?進(jìn)行端到端時(shí)間序列預(yù)測的完整代碼和詳細(xì)解釋,需要的可以參考一下
    2022-07-07
  • Python基本數(shù)據(jù)類型之字符串str

    Python基本數(shù)據(jù)類型之字符串str

    字符串是編程中最重要的數(shù)據(jù)類型,也是最常見的,今天小編抽空給大家講解下Python基本數(shù)據(jù)類型之字符串str的實(shí)例代碼,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 詳解Python編程中time模塊的使用

    詳解Python編程中time模塊的使用

    這篇文章主要介紹了詳解Python編程中time模塊的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • Python排序方法中sort和sorted的區(qū)別詳解

    Python排序方法中sort和sorted的區(qū)別詳解

    在python中常用的排序函數(shù)就是sort()和sorted()這兩個(gè)函數(shù),使用 sort() 或內(nèi)建函數(shù) sorted() 對列表進(jìn)行排序,本文將詳細(xì)介紹sorted和sort兩者之間的區(qū)別,感興趣的可以了解一下
    2023-08-08
  • Pytorch中如何調(diào)用forward()函數(shù)

    Pytorch中如何調(diào)用forward()函數(shù)

    這篇文章主要介紹了Pytorch中如何調(diào)用forward()函數(shù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python實(shí)現(xiàn)對excel文件列表值進(jìn)行統(tǒng)計(jì)的方法

    Python實(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
  • Python中使用zip函數(shù)的七重境界解析

    Python中使用zip函數(shù)的七重境界解析

    這篇文章主要介紹了Python中使用zip函數(shù)的七重境界,重點(diǎn)介紹了Python中功能強(qiáng)大的zip 函數(shù)的多種用法,并給出了相應(yīng)的代碼示例,需要的朋友可以參考下
    2022-12-12

最新評論