我有一个日期变量:
temp_date = '2019-03-15'
我使用日期时间计算了week no. of the month
和day
:
我有 week_no = 3 和 day ='星期五'。
我想查找同一周日组合的2月,1月和12月的日期。
即:2月,第3周,周五的日期(答案:2019-02-15)和
日期为1月,第3周,周五(答案:2019-01-18)。
12月,第3周,周五的日期(答案:2018-12-14)
我尝试过:
feb= (current_date + timedelta(weeks=4)).strftime ('%d-%m-%Y')
jan= (current_date + timedelta(weeks=8)).strftime ('%d-%m-%Y')
dec= (current_date + timedelta(weeks=12)).strftime ('%d-%m-%Y')
我正确地确定了1月和2月的日期,但是12月我得到了(2018-12-21)。
有更好的方法吗?
答案 0 :(得分:0)
这花了一段时间,将isoweek
中的monthrange
与calendar
一起使用应该可以做到:
from isoweek import Week
import datetime
from calendar import monthrange
year = 2019
weekDay = 3
jan_date = Week(year, weekDay).friday()
Feb = monthrange(year, 2)[1] # 28 Days for 2nd month
Mar = monthrange(year, 3)[1] # 31 Days for 3rd month
Apr = monthrange(year, 4)[1] # 30 Days for 4th month
feb_date = jan_date + datetime.timedelta(days=Feb)
mar_date = feb_date + datetime.timedelta(days=Mar)
apr_date = mar_date + datetime.timedelta(days=Apr)
print(feb_date) # Feb 28 Days
print(mar_date) # Mar 31 Days
print(apr_date) # Apr 30 Days
输出:
2019-02-15
2019-03-18
2019-04-17
注意:这是迭代完成的,增加了从 以前的。