Найти - Пользователи
Полная версия: modul calendar
Начало » Центр помощи » modul calendar
1
serhii1986
{code}
Как правильно решить сколько воскресений выпало в первый день месяца, в XX веке (1.01.1901-31.12.2000) ?
  
import calendar
cnt = 0
for year in range (1901, 2000):
    for month in range (1, 13):
        if calendar.monthrange(year, month)[0] == 6:
            cnt += 1
print(cnt)

Считает ли import calendar высокосные года(не могу понять), или надо это прописать в програме
FishHook
serhii1986
не могу понять
В чем проблема понять? Возьмите любой календарь (из состава стандартных программ ОС, например) и сравните руками/глазами, что выдает calendar.monthrange(year, month), и что есть на самом деле.


Вообще было бы крайне странно, если бы календарь вдруг не учитывал високосные года. Очень странный и бесполезный это был бы календарь. Я бы на вашем месте озаботился другим вопросом: как известно до 24 января 1918 года в России действовал другой календарь, по этой причине ваши расчеты будут неверны.
py.user.next
  
>>> import datetime
>>> 
>>> def gen_dates(start, end):
...     while start <= end:
...         yield start
...         start += datetime.timedelta(1)
... 
>>> start = datetime.datetime(1901, 1, 1)
>>> end = datetime.datetime(2000, 12, 31)
>>> 
>>> dates = gen_dates(start, end)
>>> out = sum(i == 0 for i in map(datetime.datetime.weekday, dates))
>>> out
5217
>>> 
serhii1986
Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB