因为之前的自动化的工作中几乎每个脚本都要在时间节点运行,比如每周的第一天,每月第一天和最后一天等等。这就要涉及到时间的计算,但是没有现成的包,只能自己写一个(╯‵□′)╯︵┻━┻。
用例
这个脚本里包含了一般自动化报表会用到的时间节点。
时间节点 | 函数方法 |
---|---|
今天(struct_time格式) | today(today_s) |
昨天 | yesterday |
n月前/后是几月 | month() |
n月前/后月的第一天 | month_start() |
n月前/后月的最后一天 | month_end() |
上周第一天 | last_week_start() |
上周最后一天 | last_week_end() |
本周是今年第几周 | weeknum |
今天是本周第几天 | wday |
今天是本月第几天 | mday |
今天是本年第几天 | yday |
本月天数 | mranges |
day = Sometime(timestr="2019-04-25") # 指定基准日期
print(day.today)
print(day.yesterday)
print(day.month(n_mon=2)) # 2个月后是几月
print(day.month_start(n_mon=5)) # 5个月后当月的第一天
print(day.month_end(n_mon=-6)) # 6个月前的当月第一天
print(day.last_week_start())
print(day.last_week_end())
print(day.today_s)
2019-04-25 00:00:00
2019-04-24
6
2019-09-01
2018-10-31
2019-04-15
2019-04-21
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=115, tm_isdst=-1)
day1 = Sometime(n=2) # 利用n来指定日期,正数是未来,负数是过去
print(day1.today)
print(day1.year)
print(day1.yday)