我想指望周五的使用Python每年13ths从1950 - 2050年(我知道,晚了一点)的数量。 我不熟悉使用任何日期/日历包。 有什么想法吗?
Answer 1:
这有一个直接的解决方案。 使用金额来算的次数在本月13日是星期五:
>>> from datetime import datetime # the function datetime from module datetime
>>> sum(datetime(year, month, 13).weekday() == 4
for year in range(1950, 2051) for month in range(1,13))
174
Answer 2:
该datetime.date类有一个weekday()
函数,让你一周(从0开始索引)为整数的一天,所以周五是4还有isoweekday()
从1天的索引,它给你,你喜欢。
无论如何,一个简单的解决办法是:
friday13 = 0
months = range(1,13)
for year in xrange(1950, 2051):
for month in months:
if date(year, month, 13).weekday() == 4:
friday13 += 1
Answer 3:
它是某种运动或功课? 我依稀记得已经解决了这个问题的。 我可以给你一个提示,我似乎已经习惯Calendar.itermonthdays2当然应该有其他的方法来解决它。
Answer 4:
听起来像功课。 提示(平日4是一个星期五):
import datetime
print(datetime.datetime(1950,1,13).weekday())
Answer 5:
而其它的解决方案简单明了,下面一个更“calendarist”。 您将需要dateutil
包,这是安装的软件包:
from datetime import datetime
from dateutil import rrule
fr13s = list(rrule.rrule(rrule.DAILY,
dtstart=datetime(1950,1,13),
until=datetime(2050,12,13),
bymonthday=[13],
byweekday=[rrule.FR]))
# this returns a list of 174 datetime objects
你看这些五个参数rrule.rrule
:抓住每一次rrule.DAILY
间(天) dtstart
和until
其中bymonthday
是13 byweekday
是rrule.FR
(星期五)。
文章来源: Count Dates in Python