Created
May 5, 2014 20:34
-
-
Save nortikin/30a4fc5eea38fcf0565b to your computer and use it in GitHub Desktop.
Как часто выпадает несколько дней в месяц - пять воскресений в месяце, например
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def выпадание(днидляпросчёта, годконца): | |
# месяца - стандартные значения | |
янв = мар = май = июл = авг = окт = дек = [i for i in range(1,32)] | |
апр = июн = сен = ноя = [i for i in range(1,31)] | |
# первый год не менять или найти год начинающийся с воскресенья | |
год = 2012 | |
неделя=['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'] | |
днисквозные = 0 | |
while год<годконца: | |
if not год%4: | |
фев = [i for i in range(1,30)] | |
else: | |
фев = [i for i in range(1,29)] | |
месяцев_12=[янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек] | |
for к, месяцсчёт in enumerate(месяцев_12): | |
деньсчёт = 0 | |
for деньмес in месяцсчёт: | |
день = неделя[(днисквозные)%7] | |
if день in днидляпросчёта: | |
деньсчёт+=1 | |
if деньсчёт>=(5*len(днидляпросчёта)): | |
днинеделистрочкой = ', '.join(днидляпросчёта) | |
print('Совпало, {4} выпали {0} раз {2} месяца {3} года'.format(деньсчёт, деньмес, (к+1), год, днинеделистрочкой)) | |
#print(год,к+1,деньмес,день) | |
днисквозные+=1 | |
год += 1 | |
if __name__ == "__main__": | |
выпадание(['суббота','понедельник'], 2155) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment