2022年1月的设计很成功。但是我要超越,所以在这里我将重新开始新的设定和循环
主要要有新的循环条件,同时尝试换其他方式来确定一个月天数的排列。另外也是
一种复习。
我感觉1月份的设计很不错,但从6月份开始重新来学。感觉又变了。最好不要放弃,还是继续坚持。很重要
2022-08-10 用了4天时间想出来的
# first set up year number 首先设定年份的参数
year_num = 2022
# setting week day enter 设定一周7天为换行条件
count_num = 7
m = 0
month_text = 0
# according to month for loop condition 根据12个月为总循环
for i in range(1, 13):
k = year_num % 100
j = year_num // 100
if i == 1:
month_text = "January"
m = 31
elif i == 2:
month_text = "February"
m = 29
elif i == 3:
month_text = "March"
m = 31
elif i == 4:
month_text = "April"
m = 30
elif i == 5:
month_text = "May"
m = 31
elif i == 6:
month_text = "June"
m = 30
elif i == 7:
month_text = "July"
m = 31
elif i == 8:
month_text = "August"
m = 31
elif i == 9:
month_text = "September"
m = 30
elif i == 10:
month_text = "October"
m = 31
elif i == 11:
month_text = "November"
m = 30
elif i == 12:
month_text = "December"
m = 31
print(" %10s %6s" % (month_text, year_num))
print("Sum Mon Tue Wed Thu Fri Sat")
if i == 1 or i == 2:
a = i + 12
b = year_num - 1
k = b % 100
j = b // 100
for m in range(1, m + 1):
h = (m + ((26 * (a + 1)) // 10) + k + (k // 4) + (j // 4) + 5 * j) % 7
# 通过确定的星期数赋值相应的空格摆放每月的第一天
if m == 1 and h == 0:
print("\t\t\t\t\t\t", end="")
elif m == 1 and h == 2:
print("\t", end="")
elif m == 1 and h == 3:
print("\t\t", end="")
elif m == 1 and h == 4:
print("\t\t\t", end="")
elif m == 1 and h == 5:
print("\t\t\t\t", end="")
elif m == 1 and h == 6:
print("\t\t\t\t\t", end="")
print(format(m, "3d"), end=" ")
if h % 7 == 0:
print()
print("\n")
else:
for m in range(1, m + 1):
h = (m + ((26 * (i + 1)) // 10) + k + (k // 4) + (j // 4) + 5 * j) % 7
if m == 1 and h == 0:
print("\t\t\t\t\t\t", end="")
elif m == 1 and h == 2:
print("\t", end="")
elif m == 1 and h == 3:
print("\t\t", end="")
elif m == 1 and h == 4:
print("\t\t\t", end="")
elif m == 1 and h == 5:
print("\t\t\t\t", end="")
elif m == 1 and h == 6:
print("\t\t\t\t\t", end="")
print(format(m, "3d"), end=" ")
if h % 7 == 0:
print()
print("\n")
2022年1月27日第一次做出来
# 程序的基本数据输入区域
year_num, mon_num, total_day = 2021, 1, 1
end_day = 0 # 建立这个变量 这样解决了该变量在程序里一直处于报错的状态
for j in range(mon_num, 13):
count_mon_num = mon_num
count_year_num = year_num
if mon_num == 1 or mon_num == 2:
count_mon_num += 12
count_year_num -= 1
j = count_year_num // 100
k = count_year_num % 100
b = 26 * (count_mon_num + 1)
# 从字面上却别月份
if mon_num == 1:
month_text = "January"
elif mon_num == 2:
month_text = "February"
elif mon_num == 3:
month_text = "March"
elif mon_num == 4:
month_text = "April"
elif mon_num == 5:
month_text = "May"
elif mon_num == 6:
month_text = "June"
elif mon_num == 7:
month_text = "July"
elif mon_num == 8:
month_text = "August"
elif mon_num == 9:
month_text = "September"
elif mon_num == 10:
month_text = "October"
elif mon_num == 11:
month_text = "November"
elif mon_num == 12:
month_text = "December"
# 针对单一某月日期生成设计 去掉了每个elif里的h赋值,直接由elif自己决定
print(f" {month_text} {year_num} ")
print('sun Mon Tue Wed Thu Fri Sat')
# 判定多少天是哪个月
if mon_num == 1 or mon_num == 3 or mon_num == 5 or mon_num == 7 or mon_num == 8 or mon_num == 10 or mon_num == 12:
end_day = 31
elif mon_num == 2:
end_day = 28
elif mon_num == 4 or mon_num == 6 or mon_num == 9 or mon_num == 11:
end_day = 30
h = (total_day + (b // 10) + k + (k // 4) + (j // 4) + (5 * j)) % 7
if h == 0:
t = "周六"
print('\t\t\t\t\t\t', format(total_day, '2d'))
for i in range(2, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
elif h == 1:
t = "周日"
for i in range(1, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
elif h == 2:
t = "周一"
print('\t', format(total_day, '2d'), end=' ')
for i in range(2, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
elif h == 3:
t = "周二"
print('\t\t', format(total_day, '2d'), end=' ')
for i in range(2, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
elif h == 4:
t = "周三"
print('\t\t\t', format(total_day, '2d'), end=' ')
for i in range(2, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
elif h == 5:
t = "周四"
print('\t\t\t\t', format(total_day, '2d'), end=' ')
for i in range(2, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
elif h == 6:
t = "周五"
print('\t\t\t\t\t', format(total_day, '2d'), end=' ')
for i in range(2, end_day + 1):
h += 1
print(format(i, '3d'), end=' ')
if h % 7 == 0:
print()
mon_num += 1 # 经过2022-1-27又一次验证发现出错。进行调整。将该项放到此
print()