Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 27, 2016 01:42:07

serhii1986
Зарегистрирован: 2016-11-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

modul calendar

{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 (Ноя. 27, 2016 07:19:02)

Офлайн

#2 Ноя. 27, 2016 07:31:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

modul calendar

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


Вообще было бы крайне странно, если бы календарь вдруг не учитывал високосные года. Очень странный и бесполезный это был бы календарь. Я бы на вашем месте озаботился другим вопросом: как известно до 24 января 1918 года в России действовал другой календарь, по этой причине ваши расчеты будут неверны.



Офлайн

#3 Ноя. 27, 2016 08:16:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

modul calendar

  
>>> 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
>>> 



Отредактировано py.user.next (Ноя. 27, 2016 08:25:00)

Офлайн

#4 Ноя. 27, 2016 11:16:54

serhii1986
Зарегистрирован: 2016-11-13
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

modul calendar

Спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version