5

给定一个日期,您如何知道该月的工作日位置(例如:该月的第三个星期二)以及您如何获得下个月的同一工作日的日期(例如:该月的第三个星期二+1)?

4

4 回答 4

3

看看datetime模块。特别是date 对象的weekday方法。isocalendar也可能有帮助。

于 2011-08-11T12:44:24.983 回答
2

在下面的示例中,d是一个datetime.date对象。

要获取当月当天的“索引”,请使用

def weekday_index(d):
    return (d.day + 6) // 7

这个公式将独立于日期实际是哪个工作日。要在下个月内获得具有相同工作日索引的同一工作日,最简单的方法似乎是

d_next = d + datetime.timedelta(weeks=4)
if weekday_index(d_next) < weekday_index(d):
    d_next += datetime.timedelta(weeks=1)

这使用了您要查找的日期是 4 周或 5 周之后的事实d

于 2011-08-11T12:59:51.640 回答
2

看看dateutil

于 2011-08-11T13:03:05.560 回答
1
import datetime
cnt=1
d=datetime.datetime.now()
d1=datetime.datetime(d.year,d.month,1,d.hour,d.minute,d.second,d.microsecond)
while(d1.day!=d.day):
  if 6-d1.weekday()==1:cnt=cnt+1
  d1=d1+datetime.timedelta(days=1)
print cnt #print current date week position
于 2013-11-17T13:29:46.067 回答