python制作万年历,输入年月日,判断1900到输入的日期的总天数,格式化输出日历

练习python函数制作万年历

运行效果如下:

 1 ##判断是否闰年
 2 def isleap(year):
 3     if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
 4         return True
 5     else:
 6         return False
 7 
 8 ##判断每个月有多少天
 9 def get_day(year,month):
10     if month in [1, 3, 5, 7, 8, 10, 12]:
11         return 31
12     elif month in [4, 6, 9, 11]:
13         return 30
14     else:
15         if isleap(year):
16             return 28
17         else:
18             return 29
19 
20 
21 def wanNianLi():
22     year_in = int(input("InPut the Year:"))
23     month_in = int(input("InPut the Month:"))
24     day_in = int(input("InPut the day:"))
25     #判断是不是闰年
26     if isleap(year_in):
27         print("%d是闰年"%year_in)
28     else:
29         print("%d不是闰年"%year_in)
30     #获取这个月有多少天数
31     day_num = get_day(year_in,month_in)
32     print("%d年%d月有%d天"%(year_in,month_in,day_num))
33 
34     #计算从1900到当前年有多少天
35     day_now = 0
36     for i in range(1900,year_in):
37         if isleap(year_in):
38             day_now += 366
39         else:
40             day_now += 365
41     print("从1900年到%d年有%d天"%(year_in,day_now))
42 
43     def sum_day(year_in,month_in,day_in):
44         '''
45         #计算1900年1月1日到输入的年月日的天数
46         :param year_in:
47         :param month_in:
48         :param day_in:
49         :return:
50         '''
51         #计算用户输入的月份到输入的年份的1月1日有多少天
52         day_long = 0
53         for i in range(1, month_in):
54             day_long+=get_day(year_in,i)
55         else:
56             day_long+=day_in
57         #print('1月1日到%d月%d日有%d天'%(month_in,day_in,day_long))
58 
59         #计算1900年1月1日到输入的年月日的天数
60         day1900toNow = day_now + day_long
61         #print('1900年1月1日到%d年%d月%d日有%d天'%(year_in,month_in,day_in,day1900toNow))
62         return day1900toNow
63 
64     def get_week(year_in,month_in,day_in):
65         '''
66         # 计算输入月的星期数,1900年1月1日是星期一
67         :param year_in:
68         :param month_in:
69         :param day_in:
70         :return:
71         '''
72         # 计算输入月的星期数,1900年1月1日是星期一
73         week = sum_day(year_in,month_in,day_in) % 7
74         if week == 0:
75             week = 7
76         #print("%d年%d月%d日是星期%s" % (year_in, month_in, day_in, week))
77         return week
78     get_week(year_in,month_in,day_in)
79     ##格式化
80     print("日\t一\t二\t三\t四\t五\t六\t")
81     day_week = get_week(year_in, month_in, 1)
82     print("\t" * day_week,end='')
83     for imon in range(1,get_day(year_in,month_in)+1):
84         print(imon,'\t',end='')
85         if get_week(year_in, month_in, imon)==6:
86             print()
87 wanNianLi()

猜你喜欢

转载自www.cnblogs.com/wenmo/p/11285592.html