python获取本天,本周,本月,本年,上一天,上一周,上一月,上一年的开始及结束日期
程序员文章站
2022-06-15 22:46:15
...
python环境为python3.6.5
import datetime
import calendar
def get_current_day():
'''
当日
:return:
'''
today = datetime.datetime.today()
return {"start_date":today.strftime("%Y-%m-%d"),"end_date": today.strftime("%Y-%m-%d")}
def get_current_week():
''' 当周 '''
today = datetime.date.today()
start_date = today - datetime.timedelta(days=today.weekday())
end_date = today + datetime.timedelta(days=(6-today.weekday()))
return {"start_date": start_date.strftime("%Y-%m-%d"), "end_date": end_date.strftime("%Y-%m-%d")}
def get_current_month():
''' 当月'''
today = datetime.datetime.today()
year, month = today.year, today.month
days = calendar.monthrange(year, month)[1]
params = {"start_date": datetime.datetime.strftime(datetime.datetime.strptime(f"{year}-{month}-01", "%Y-%m-%d"), "%Y-%m-%d"),
"end_date": datetime.datetime.strftime(datetime.datetime.strptime(f"{year}-{month}-{days}", "%Y-%m-%d"), "%Y-%m-%d"), }
return params
def get_current_year():
''' 当年'''
today = datetime.datetime.today()
year = today.year
days = calendar.monthrange(year, 12)[1]
params = {"start_date": f"{year}-01-01", "end_date": f"{year}-12-{days}"}
return params
def get_last_day():
'''上一天 '''
today = datetime.datetime.today()
one_day = datetime.timedelta(days=1)
end_time = today - one_day
year = end_time.strftime("%Y")
month = end_time.strftime("%m")
day = end_time.strftime("%d")
params = {"start_date": f"{year}-{month}-{day}", "end_date": f"{year}-{month}-{day}" }
return params
def get_last_week():
''' 上一周 '''
today = datetime.datetime.today()
days_count = datetime.timedelta(days=today.isoweekday())
end_time = today - days_count
six_days = datetime.timedelta(days=6)
start_time = end_time - six_days
start_year = start_time.strftime("%Y")
start_month = start_time.strftime("%m")
start_day = start_time.strftime("%d")
year = end_time.strftime("%Y")
month = end_time.strftime("%m")
end_day = end_time.strftime("%d")
params = {"start_date": f"{start_year}-{start_month}-{start_day}", "end_date": f"{year}-{month}-{end_day}"}
return params
def get_last_month():
"""上一月"""
today = datetime.datetime.today()
days_count = datetime.timedelta(days=today.day)
end_time = today - days_count
year = end_time.strftime("%Y")
month = end_time.strftime("%m")
params = {"start_date": f"{year}-{month}-01", "end_date": f"{year}-{month}-{end_time.day}"}
return params
def get_last_year():
"""上一年"""
today = datetime.datetime.today()
year = today.year - 1
days = calendar.monthrange(year, 12)[1]
params = {"start_date": f"{year}-01-01", "end_date": f"{year}-12-{days}"}
return params
if __name__ == '__main__':
print('当日', get_current_day())
print('当周', get_current_week())
print('当月', get_current_month())
print('当年', get_current_year())
print('上一日', get_last_day())
print('上一周', get_last_week())
print('上一月', get_last_month())
print('上一年', get_last_year())
"""运行结果:
当日 {'start_date': '2021-09-29', 'end_date': '2021-09-29'}
当周 {'start_date': '2021-09-27', 'end_date': '2021-10-03'}
当月 {'start_date': '2021-09-01', 'end_date': '2021-09-30'}
当年 {'start_date': '2021-01-01', 'end_date': '2021-12-31'}
上一日 {'start_date': '2021-09-28', 'end_date': '2021-09-28'}
上一周 {'start_date': '2021-09-20', 'end_date': '2021-09-26'}
上一月 {'start_date': '2021-08-01', 'end_date': '2021-08-31'}
上一年 {'start_date': '2020-01-01', 'end_date': '2020-12-31'}
"""