python获取指定时间段内特定规律的日期列表

 更新时间:2021年04月01日 10:42:33   作者:JACK_ChenH  
这篇文章主要介绍了python获取指定时间段内特定规律的日期列表,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前言:写小程序时,遇到个需要自定义回归时间的场景,下面是实现的效果图。

    于我需求而言,我只需要用到fixed_interval、weekly、per_month三个方法返回的回归间隔列表就行,最后的这个make_date_from_list方法,是为了能在这里展示效果

    TIP:没有做异常处理,以及时间格式化之类的。这里只是抛砖引玉给个原型砖头出来。

实现代码:

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):
    """
    固定间隔的类型,直接使用间隔数字
    :param num:间隔的天数
    :return:不同时间段内,对应策略的执行时间间隔列表
    """
    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的数据类型
    :param i:0-星期一,1-星期二,2-星期三,3-星期四,4-星期五,5-星期六,6-星期日
    :param weeks:间隔周数,默认间隔一周
    :return:不同时间段内,对应策略的执行时间间隔列表
    """
    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:不同时间段内,对应策略的执行时间间隔列表
    """
    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: 间隔的周数,默认为1(每周)
    :param num:根据mode来区分,分表代表:间隔的天数,周几(0-6/周一-周日),指定的月日期
    :param mode:day, week, month
    :return: 不同时间段内,对应策略的执行时间间隔列表
    """
    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获取指定时间段内特定规律的日期列表的文章就介绍到这了,更多相关python获取指定时间段内日期列表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python中的 type()函数

    详解Python中的 type()函数

    type()是一个内置函数,可以很方便地查询对象数据类型;主要有两种用法:一个参数和三个参数,这篇文章主要介绍了Python中的 type()函数,需要的朋友可以参考下
    2022-08-08
  • python对常见数据类型的遍历解析

    python对常见数据类型的遍历解析

    这篇文章主要介绍了python对常见数据类型的遍历解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python全局锁中如何合理运用多线程(多进程)

    Python全局锁中如何合理运用多线程(多进程)

    这篇文章主要介绍了Python全局锁中如何合理运用多线程(多进程),需要的朋友可以参考下
    2019-11-11
  • Python使用LSTM实现销售额预测详解

    Python使用LSTM实现销售额预测详解

    大家经常会遇到一些需要预测的场景,比如预测品牌销售额,预测产品销量。本文给大家分享一波使用 LSTM 进行端到端时间序列预测的完整代码和详细解释,需要的可以参考一下
    2022-07-07
  • Python基本数据类型之字符串str

    Python基本数据类型之字符串str

    字符串是编程中最重要的数据类型,也是最常见的,今天小编抽空给大家讲解下Python基本数据类型之字符串str的实例代码,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • 详解Python编程中time模块的使用

    详解Python编程中time模块的使用

    这篇文章主要介绍了详解Python编程中time模块的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-11-11
  • Python排序方法中sort和sorted的区别详解

    Python排序方法中sort和sorted的区别详解

    在python中常用的排序函数就是sort()和sorted()这两个函数,使用 sort() 或内建函数 sorted() 对列表进行排序,本文将详细介绍sorted和sort两者之间的区别,感兴趣的可以了解一下
    2023-08-08
  • Pytorch中如何调用forward()函数

    Pytorch中如何调用forward()函数

    这篇文章主要介绍了Pytorch中如何调用forward()函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python实现对excel文件列表值进行统计的方法

    Python实现对excel文件列表值进行统计的方法

    这篇文章主要介绍了Python实现对excel文件列表值进行统计的方法,涉及Python基于win32com组件操作表格文件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python中使用zip函数的七重境界解析

    Python中使用zip函数的七重境界解析

    这篇文章主要介绍了Python中使用zip函数的七重境界,重点介绍了Python中功能强大的zip 函数的多种用法,并给出了相应的代码示例,需要的朋友可以参考下
    2022-12-12

最新评论