我必须在第一天给出相同的工作日,并且持续时间在第一个日期和第二个日期之间。第一个日期是日期(2011年,01,11)第二个日期是今天。
from datetime import date
"""
(date(2011, 10, 15))
"""
samewkdays=date.weekday()
print(samewkdays) #5
输出必须是月份和工作日与第一个日期相同的日期。由于我很少知道日期时间功能,我甚至无法从这里进一步思考。我非常感谢你的任何建议,帮助我!
答案 0 :(得分:2)
我希望你的意思是什么。我还提供了清晰的测试。我只是迭代,直到我们达到today
或切换一个月。
from datetime import timedelta
from datetime import date
def get_month_dates_with_same_weekday(dt, dt_end=None):
mon = dt.month
rv = []
dt_end = date.today() if dt_end is None else dt_end
while dt.month == mon and dt <= dt_end:
rv.append(dt)
dt = dt + timedelta(days=7)
return rv
def check(dt1, dt2):
assert dt1.weekday() == dt.weekday()
assert dt1.month == dt.month
if __name__ == '__main__':
dt1 = date(2011, 10, 15)
rv = get_month_dates_with_same_weekday(dt1)
for dt in rv:
check(dt, dt1)
dt2 = date(2011, 10, 1)
for dt in get_month_dates_with_same_weekday(dt2):
check(dt, dt2)
rv = get_month_dates_with_same_weekday(dt2, date(2011, 10, 2))
assert len(rv) == 1 and rv[0] == dt2
rv = get_month_dates_with_same_weekday(dt2, date(2011, 10, 9))
assert len(rv) == 2 and rv[0] == dt2 and rv[1] == date(2011, 10, 8)