python获取指定日期范围内的每一天,每个月,每季度的方法

yipeiwu_com5年前Python基础

1.获取所有天,返回一个列表:

def getBetweenDay(begin_date):
  date_list = []
  begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d")
  end_date = datetime.datetime.strptime(time.strftime('%Y-%m-%d',time.localtime(time.time())), "%Y-%m-%d")
  while begin_date <= end_date:
    date_str = begin_date.strftime("%Y-%m-%d")
    date_list.append(date_str)
    begin_date += datetime.timedelta(days=1)
  return date_list

2.获取所有月,返回一个列表:

def getBetweenMonth(begin_date):
  date_list = []
  begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d")
  end_date = datetime.datetime.strptime(time.strftime('%Y-%m-%d', time.localtime(time.time())), "%Y-%m-%d")
  while begin_date <= end_date:
    date_str = begin_date.strftime("%Y%m")
    date_list.append(date_str)
    begin_date = add_months(begin_date,1)
  return date_list
 
def add_months(dt,months):
  month = dt.month - 1 + months
  year = dt.year + month / 12
  month = month % 12 + 1
  day = min(dt.day, calendar.monthrange(year, month)[1])
  return dt.replace(year=year, month=month, day=day)

3.获取所有季度,返回一个列表:

def getBetweenMonth(begin_date):
  date_list = []
  begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d")
  end_date = datetime.datetime.strptime(time.strftime('%Y-%m-%d', time.localtime(time.time())), "%Y-%m-%d")
  while begin_date <= end_date:
    date_str = begin_date.strftime("%Y-%m")
    date_list.append(date_str)
    begin_date = add_months(begin_date,1)
  return date_list
 
def add_months(dt,months):
  month = dt.month - 1 + months
  year = dt.year + month / 12
  month = month % 12 + 1
  day = min(dt.day, calendar.monthrange(year, month)[1])
  return dt.replace(year=year, month=month, day=day)
 
def getBetweenQuarter(begin_date):
  quarter_list = []
  month_list = getBetweenMonth(begin_date)
  for value in month_list:
    tempvalue = value.split("-")
    if tempvalue[1] in ['01','02','03']:
      quarter_list.append(tempvalue[0] + "Q1")
    elif tempvalue[1] in ['04','05','06']:
      quarter_list.append(tempvalue[0] + "Q2")
    elif tempvalue[1] in ['07', '08', '09']:
      quarter_list.append(tempvalue[0] + "Q3")
    elif tempvalue[1] in ['10', '11', '12']:
      quarter_list.append(tempvalue[0] + "Q4")
  quarter_set = set(quarter_list)
  quarter_list = list(quarter_set)
  quarter_list.sort()
  return quarter_list

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中字典和JSON互转操作实例

JSON是一种轻量级的数据交换格式,各种语言都有良好的支持。字典是Python的一种数据结构。可以看成关联数组。 有些时候我们需要设计到字典转换成JSON序列化到文件,或者从文件中读取J...

wxPython实现分隔窗口

wxPython实现分隔窗口

本文实例为大家分享了wxPython分隔窗口的具体代码,供大家参考,具体内容如下 1、分割窗口 分隔窗口(wx.SplitterWindow)就是将窗口分成两部分,即左右或上下两部分,如...

python实现列表中由数值查到索引的方法

python实现列表中由数值查到索引的方法

如下所示: 以上这篇python实现列表中由数值查到索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。...

Python学习教程之常用的内置函数大全

前言 内置函数,一般都是因为使用比较频繁或是元操作,所以通过内置函数的形式提供出来。在Python中,python给我们提供了很多已经定义好的函数,这里列出常用的内置函数,分享出来供大家...

Python中list循环遍历删除数据的正确方法

Python中list循环遍历删除数据的正确方法

前言 初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(nu...