1、根据日期获取日期范围列表
def dateRange(beginDate, endDate):
dates = []
var_month = datetime.datetime.strptime(beginDate, "%Y-%m-%d")
date = beginDate[:]
while date <= endDate:
dates.append(date)
var_month = var_month + datetime.timedelta(1)
date = var_month.strftime("%Y-%m-%d")
return dates
2、根据两月份获取月份范围列表
def monthRange(beginMonth, endMonth):
months = set([])
mt = datetime.datetime.strptime(beginMonth, "%Y-%m")
month = beginMonth[:]
while month <= endMonth:
months.add(month)
mt = mt + datetime.timedelta(1)
month = mt.strftime("%Y-%m")
monthList = sorted(months)
return monthList
3、月份相加减
def months_addsub(var_month,months):
month = var_month.month - 1 + months
year = var_month.year + month / 12
month = month % 12 + 1
day = min(var_month.day,calendar.monthrange(year,month)[1])
var_month = var_month.replace(year=year, month=month, day=day)
return str(var_month.replace(year=year, month=month, day=day))
4、获取昨天日期
def getYesterday():
today = datetime.date.today()
oneday = datetime.timedelta(days=1)
yesterday = today - oneday
return yesterday
5、综合使用示例
# -*- coding=utf-8 -*-
import warnings
import calendar
import datetime
warnings.filterwarnings("ignore")
def dateRange(beginDate, endDate):
dates = []
var_month = datetime.datetime.strptime(beginDate, "%Y-%m-%d")
date = beginDate[:]
while date <= endDate:
dates.append(date)
var_month = var_month + datetime.timedelta(1)
date = var_month.strftime("%Y-%m-%d")
return dates
def monthRange(beginMonth, endMonth):
months = set([])
mt = datetime.datetime.strptime(beginMonth, "%Y-%m")
month = beginMonth[:]
while month <= endMonth:
months.add(month)
mt = mt + datetime.timedelta(1)
month = mt.strftime("%Y-%m")
monthList = sorted(months)
return monthList
def months_addsub(var_month,months):
month = var_month.month - 1 + months
year = var_month.year + month / 12
month = month % 12 + 1
day = min(var_month.day,calendar.monthrange(year,month)[1])
var_month = var_month.replace(year=year, month=month, day=day)
return str(var_month.replace(year=year, month=month, day=day))
def getYesterday():
today = datetime.date.today()
oneday = datetime.timedelta(days=1)
yesterday = today - oneday
return yesterday
# 数据测试
runDay_list = dateRange(beginDate='2019-05-29', endDate='2019-06-03')
runMonth_list = monthRange(beginMonth='2018-09', endMonth='2019-05')
print runDay_list
print runMonth_list
pt_month='2019-06'
pt_month_frist = pt_month+'-01'
pt_month_frist_format = datetime.date(int(pt_month_frist[0:4]), int(pt_month_frist[5:7]), int(pt_month_frist[8:10]))
pt_month_next = months_addsub(pt_month_frist_format, -9)[0:7]
print pt_month_next
print str(getYesterday())
结果数据:
/usr/bin/python /Users/nisj/PycharmProjects/BiDataProc/love/x.py
['2019-05-29', '2019-05-30', '2019-05-31', '2019-06-01', '2019-06-02', '2019-06-03']
['2018-09', '2018-10', '2018-11', '2018-12', '2019-01', '2019-02', '2019-03', '2019-04', '2019-05']
2018-09
2019-07-01
Process finished with exit code 0