python 自己写的关于时间很有用的函数
Posted Mr.ZeroW
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 自己写的关于时间很有用的函数相关的知识,希望对你有一定的参考价值。
输入日期,以及频率,比如3周,6月,输出日期前3周,6月的日期
from datetime import datetime from datetime import timedelta import calendar #输入日期,以及频率默认1周(日、周、月或者年),输出往前日、周、月、年的日期 def get_pre_date(Date, fre = \'1w\'): end_date = datetime.strptime(Date, \'%Y%m%d\') if fre.endswith(\'w\'): start_date = end_date - timedelta(int(fre[: -1]) * 7) start_date = start_date.strftime(\'%Y%m%d\') elif fre.endswith(\'d\'): start_date = end_date - timedelta(int(fre[: -1])) start_date = start_date.strftime(\'%Y%m%d\') elif fre.endswith(\'m\'): start_date_year = end_date.year - int(fre[: -1])// 12 #余数 remainder = int(fre[: -1])% 12 delta_month = end_date.month - remainder if delta_month <= 0: start_date_year -= 1 start_date_month = 12 + remainder else: start_date_month = end_date.month - remainder #判断日子,通过月份来判断 delta_day =calendar.monthrange(end_date.year, end_date.month)[1] - end_date.day start_date_day = calendar.monthrange(start_date_year, start_date_month)[1] - delta_day start_date = str(start_date_year) + str(start_date_month).zfill(2) + str(start_date_day) elif fre.endswith(\'y\'): start_date_year = end_date.year - int(fre[: -1]) start_date = str(start_date_year) + str(end_date.month).zfill(2) + str(end_date.day) else: print(\'输入:"nd", "nw", "nm", "ny",其中"n"是数字\\n\') return start_date
来运行一下,获取2015年8月31号前16月的具体日期
get_pre_date(\'20150831\', \'16m\')
输出如下,是2014年4月30号
以上是关于python 自己写的关于时间很有用的函数的主要内容,如果未能解决你的问题,请参考以下文章