黑色星期五
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑色星期五相关的知识,希望对你有一定的参考价值。
程序地址:http://www.cheemoedu.com/exercise/5
问题描述:
黑色星期五源于西方的宗教信仰与迷信:耶稣基督死在星期五,而13是不吉利的数字。两者的结合令人相信当天会发生不幸的事情。星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的13日又恰逢星期五就叫“黑色星期五”。找出未来几年哪些天是“黑色星期五”。
我的代码:
#coding=utf-8 import calendar import time import datetime print "星期0表示是星期日..." def week(year,month,day=13): blackfriday=datetime.datetime(year,month,day).strftime("%w") if int(blackfriday)==5: print "%d年%d月13号是黑色星期五..." % (year,month) print "" years=[] months=range(1,13,1) day=13 while True: year=int(raw_input("输入年份(输入2333时退出):")) if year==2333: break else: years.append(year) for y in years: print "%d年的日历为:" % y calendar.prcal(y) for m in months: week(y,m,day)
我的思路:
以2016年为例,当初想到的就是先输出16年全年的日历,然后根据for循环遍历12个月的日历,通过某个函数输出每个月13号对应的是星期几,最后再判断是否等于星期五,如果是就输出;
首先定义一个函数,该函数传入年,月,日(默认13号)三个参数,通过datetime模块的datetime函数输出该天是星期几,然后判断是否为星期五并输出;
这个程序并不难,忽略了平年闰年的判断等操作,很容易读懂,但是写起来真不容易啊,想了好多最后还是觉得这种方法实现起来简单点;
结果:
星期0表示是星期日...
输入年份(输入2333时退出):2016
输入年份(输入2333时退出):2017
输入年份(输入2333时退出):2333
2016年的日历为:
2016
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 6
4 5 6 7 8 9 10 8 9 10 11 12 13 14 7 8 9 10 11 12 13
11 12 13 14 15 16 17 15 16 17 18 19 20 21 14 15 16 17 18 19 20
18 19 20 21 22 23 24 22 23 24 25 26 27 28 21 22 23 24 25 26 27
25 26 27 28 29 30 31 29 28 29 30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 1 2 3 4 5
4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30
30 31
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7 1 2 3 4
4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
25 26 27 28 29 30 31 29 30 31 26 27 28 29 30
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
31
2016年5月13号是黑色星期五...
2017年的日历为:
2017
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28 27 28 29 30 31
30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 7 1 2 3 4
3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
24 25 26 27 28 29 30 29 30 31 26 27 28 29 30
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3
3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30
31
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 1 2 3
2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10
9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17
16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24
23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31
30 31
2017年1月13号是黑色星期五...
2017年10月13号是黑色星期五...
总结:
打印某年的日历
calendar.prcal(year)
注意:calendar.prcal(2016)的类型是<type ‘NoneType‘>,并不能直接对其遍历;
2.关于日期的输出格式
>>> print datetime.datetime(2016,5,13)
2016-05-13 00:00:00
加上strftime("%w")就能输出星期了
datetime.datetime(2016,5,13).strftime("%w")
‘5‘
>>> print datetime.datetime(2016,5,13).strftime("%w")
5
以上是关于黑色星期五的主要内容,如果未能解决你的问题,请参考以下文章