我试图计算给定月份内特定日期的频率 . 例如,本月(2016年11月),有4个星期一,5个星期二,5个星期三,4个星期四,4个星期五,4个星期六和4个星期日 .
到目前为止,这是我已经做过的事情 .
import calendar
from calendar import weekday, monthrange, SUNDAY
import datetime
now = datetime.datetime.now()
year, month = now.year, now.month
days = [weekday(year, month, d) for d in range(*monthrange(year, month))]
但是,当我试图打印多少时,例如本月的星期二,它给了我不正确的结果 .
In [1]: print(days.count(calendar.WEDNESDAY))
Out [1]: 4 # should be 5 instead of 4
In [2]: print(days.count(calendar.TUESDAY))
Out [2]: 5 # this one is correct
如果我在Python中检查日历,它会向我显示正确的日历 .
In [4]: calendar.prmonth(year, month)
November 2016
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
我的目标是计算给定月份内特定日期的频率 . 任何建议将不胜感激 . 非常感谢 .
问候,
阿诺德A.
2 回答
range(start, stop)
不包括止损,因为monthrange(year, month)
返回(1, 30)
,范围将停在29
. 所以稍作更新:你有一个错误,范围从开始到结束-1,你可以这样做: