记录和分享自己学习python过程中的一些想法和代码……
class day_time():
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def calculate_year(self):
if (int(self.year) % 4 == 0 and int(self.year) % 100 != 0) or (int(self.year) % 400 == 0):
return 1
return 0
def calculate_month(self):
if self.calculate_year() == 1:
print('润年')
month_dic = {'一月': '31', '二月': '29', '三月': '31', '四月': '30', '五月': '31', '六月': '30',
'七月': '31', '八月': '31', '九月': '30', '十月': '31', '十一月': '30', '十二月': '31'}
else:
print('平年')
month_dic = {'一月': '31', '二月': '28', '三月': '31', '四月': '30', '五月': '31', '六月': '30',
'七月': '31', '八月': '31', '九月': '30', '十月': '31', '十一月': '30', '十二月': '31'}
return month_dic
def calculate_day(self):
# 泰勒公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
# 其中,c是年份的前两位,y是年份的后两位,m是月份,d是日期.
c = int(self.year[0:2])
y = int(self.year[2:4])
m = int(self.month)
d = int(self.day)
weekday = int(c / 4) - 2 * c + y + int(y / 4) + int(13 * (m + 1) / 5) + d - 1
return weekday % 7
def week_day(self):
weekdic = {0: '星期日', 1: '星期一', 2: '星期二', 3: '星期三', 4: '星期四', 5: '星期五', 6: '星期六'}
if int(self.calculate_day()) in weekdic.keys():
return weekdic[int(self.calculate_day())]
return -1
def print_day(self):
month_dic = self.calculate_month()
month_trans = {'一月': 1, '二月': 2, '三月': 3, '四月': 4, '五月': 5, '六月': 6,
'七月': 7, '八月': 8, '九月': 9, '十月': 10, '十一月': 11, '十二月': 12}
y = self.year
for m in month_dic.keys():
t = month_trans[m]
for i in range(1, int(month_dic[m]) + 1):
print(y + '年' + str(t) + '月' + str(i) + '日' + day_time(y, t, i).week_day())
time1 = day_time('2020', '5', '10')
# time1.calculate_month()
# print(time1.week_day())
time1.print_day()