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

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

熱門標(biāo)簽:原裝電話機(jī)器人 西藏智能外呼系統(tǒng)五星服務(wù) 江蘇客服外呼系統(tǒng)廠家 千陽自動(dòng)外呼系統(tǒng) 400電話申請(qǐng)服務(wù)商選什么 工廠智能電話機(jī)器人 在哪里辦理400電話號(hào)碼 平頂山外呼系統(tǒng)免費(fèi) 清遠(yuǎn)360地圖標(biāo)注方法

前言:寫小程序時(shí),遇到個(gè)需要自定義回歸時(shí)間的場(chǎng)景,下面是實(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),對(duì)應(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),對(duì)應(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),對(duì)應(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),對(duì)應(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)容請(qǐng)搜索腳本之家以前的文章或繼續(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ù)的方式

標(biāo)簽:西安 股票 隨州 白城 日照 天水 錦州 安慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表》,本文關(guān)鍵詞  python,獲取,指定,時(shí)間段,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表》相關(guān)的同類信息!
  • 本頁收集關(guān)于python獲取指定時(shí)間段內(nèi)特定規(guī)律的日期列表的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章