在python

时间:2019-03-15 07:19:37

标签: python datetime

我有一个日期变量:

temp_date = '2019-03-15'

我使用日期时间计算了week no. of the monthday

我有 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)。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

这花了一段时间,将isoweek中的monthrangecalendar一起使用应该可以做到:

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
  

注意:这是迭代完成的,增加了从   以前的。