您的问题在这里:
adj = temp.weekday()-week_day
首先,您用错误的方式减去东西:您需要从所需的日期减去实际的日期,而不是相反。
其次,您需要确保减法的结果不是负数-应该使用将其放在0-6的范围内
% 7。
结果:
adj = (week_day - temp.weekday()) % 7
此外,在第二个版本中,您需要
nth_week-1像在第一个版本中一样增加几周的时间。
完整的例子:
def nth_weekday(the_date, nth_week, week_day): temp = the_date.replace(day=1) adj = (week_day - temp.weekday()) % 7 temp += timedelta(days=adj) temp += timedelta(weeks=nth_week-1) return temp>>> nth_weekday(datetime(2011,8,9), 3, 4)datetime.datetime(2011, 8, 19, 0, 0)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)