最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言:寫小程序時,遇到個需要自定義回歸時間的場景,下面是實現(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:不同時間段內(nèi),對應(yīng)策略的執(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ù),默認(rèn)間隔一周
    :return:不同時間段內(nèi),對應(yīng)策略的執(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:不同時間段內(nèi),對應(yīng)策略的執(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ù),默認(rèn)為1(每周)
    :param num:根據(jù)mode來區(qū)分,分表代表:間隔的天數(shù),周幾(0-6/周一-周日),指定的月日期
    :param mode:day, week, month
    :return: 不同時間段內(nèi),對應(yīng)策略的執(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

到此這篇關(guān)于python獲取指定時間段內(nèi)特定規(guī)律的日期列表的文章就介紹到這了,更多相關(guān)python獲取指定時間段內(nèi)日期列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 實現(xiàn)Python3數(shù)組旋轉(zhuǎn)的3種算法實例

    實現(xiàn)Python3數(shù)組旋轉(zhuǎn)的3種算法實例

    在本篇文章里小編給大家整理的是一篇關(guān)于實現(xiàn)Python3數(shù)組旋轉(zhuǎn)的3種算法實例內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-09-09
  • python flask中動態(tài)URL規(guī)則詳解

    python flask中動態(tài)URL規(guī)則詳解

    今天小編就為大家分享一篇python flask中動態(tài)URL規(guī)則詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python和go語言的區(qū)別是什么

    python和go語言的區(qū)別是什么

    在本篇文章中小編給大家整理的是一篇關(guān)于go語言和python的區(qū)別點,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • 詳解python中return和print的區(qū)別和用途

    詳解python中return和print的區(qū)別和用途

    在 Python 中,return 和 print 是兩種常見的語句,用于在函數(shù)中輸出信息或返回值,盡管它們看起來相似,但它們有不同的作用和用法,本文將詳細(xì)介紹 return 和 print 在函數(shù)中的區(qū)別,并提供豐富的示例代碼,以幫助你更好地理解它們的用途
    2023-11-11
  • Python文件循環(huán)寫入行時防止覆蓋的解決方法

    Python文件循環(huán)寫入行時防止覆蓋的解決方法

    今天小編就為大家分享一篇Python文件循環(huán)寫入行時防止覆蓋的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python編程pygame模塊實現(xiàn)移動的小車示例代碼

    Python編程pygame模塊實現(xiàn)移動的小車示例代碼

    這篇文章主要介紹了Python編程pygame模塊實現(xiàn)移動的小車示例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python Matplotlib繪制多子圖詳解

    Python Matplotlib繪制多子圖詳解

    Matplotlib是Python中最受歡迎的數(shù)據(jù)可視化軟件包之一,它是 Python常用的2D繪圖庫,同時它也提供了一部分3D繪圖接口。本文將詳細(xì)介紹如何通過Matplotlib繪制多子圖,以及合并圖例和調(diào)整子圖間距,需要的可以參考一下
    2022-02-02
  • Python 在局部變量域中執(zhí)行代碼

    Python 在局部變量域中執(zhí)行代碼

    這篇文章主要介紹了Python 如何在局部變量域中執(zhí)行代碼,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • python中mpi4py的所有基礎(chǔ)使用案例詳解

    python中mpi4py的所有基礎(chǔ)使用案例詳解

    這篇文章主要介紹了python中mpi4py的所有基礎(chǔ)使用,本文通過10個案例給大家詳細(xì)講解,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • python求平均值多種方法代碼示例

    python求平均值多種方法代碼示例

    要求一個列表中的數(shù)的平均值,我們可以使用Python來實現(xiàn),這篇文章主要給大家介紹了關(guān)于python求平均值多種方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11

最新評論

靖州| 密云县| 赤城县| 盐亭县| 博野县| 峨山| 大洼县| 溆浦县| 盐城市| 施秉县| 泊头市| 宁都县| 海丰县| 嫩江县| 华池县| 建昌县| 开鲁县| 东平县| 逊克县| 梁山县| 资源县| 丹江口市| 罗城| 高平市| 晋江市| 礼泉县| 平邑县| 武城县| 乌海市| 始兴县| 花莲县| 中方县| 盐山县| 搜索| 当涂县| 富源县| 大兴区| 耒阳市| 都安| 平罗县| 平谷区|