小白第一步,使用python计算历史上任意一天是星期几?
计算机时间自1970.1.1 00:00:00时起,使用手机查询历史上甚至公元前的某个重要日子便有些不便。根据历法原理,小编的自学练习想与大家分享,也作为一个学习日记使用,望大家不喜勿喷!
计算公式:
S=x-1+[(x-1)/4]-[(x-1)/100]+[(x-1)/400]+C
R=S/7
x为公元年数;
C为本年元旦到这一天的日数(要包含这一天);
#分数计算只去整数部分(使用整数除法基本运算符 // );
#R为S除以7的余数,余几及周几,刚好能除尽,及为周日;(使用区余基本运算符 % )
以下即为相应代码部分:
#输入日期
print('输入日期****年**月**日,公元前年份以负数输入')
x=int(input('某年',))#输入*年
y=int(input('某月',))#输入*月
z=int(input('某日',))#输入*日
#判断输入年份是否为闰年,2月以28天计算
x1=x%4
if x1 == 0:
s=1
else:
s=0
#计算第n月结束时天数
if y==1:
C=z
elif y ==2:
C=(y-1)*30+1+z
elif y ==3:
C=(y-1)*30-1+z+s
elif y ==5 or 6:
C=(y-1)*30+0+z+s
elif y ==6 or 7:
C=(y-1)*30+1+z+s
elif y ==8:
C=(y-1)*30+2+z+s
elif y ==9 or 10:
C=(y-1)*30+3+z+s
elif y ==11 or 12:
C=(y-1)*30+4+z+s
# 星期计算公式 S=x-1+((x-1)//4)-((x-1)//100)+((x-1)//400)+C
n=x-1
S=n+(n//4)-(n//100)+(n//400)+C
#输出结果设置
a="{}年{}月{}日"
print(a.format(x,y,z))
print('本年度第',C,'天')
m=S%7
if m ==1:
print("星期一")
if m ==2:
print("星期二")
if m ==3:
print("星期三")
if m ==4:
print("星期四")
if m ==5:
print("星期五")
if m ==6:
print("星期六")
if m ==0:
print("星期日")