想写一个输入年月日计算星期几的代码,但是不知道文明结果不对,求大佬帮助
#规定月份的日期值month1=31
month2=30
month3=28
month4=29
#规定年份的日期值
year1=365
year2=366
#判断每个月份腊月和非腊月
list1 =
list2 =
#用户输入
year = int(input("请输入一个年份:"))
month = int(input("请输入一个月份:"))
day = int(input("请输入一个日期:"))
#判断闰年并赋值
def daysyear(year):
if year % 400 == 0 or (year%4 == 0 and year%100 != 0):
return year2
else:
return year1
#判断月份并赋值
def daysmonth(month):
if month in list1:
return month1
elif month in list2:
return month2
else:
if year % 400 == 0 or (year%4 == 0 and year%100 != 0):
return month4
else:
return month3
#计算输入的日期到1990年的日期总和
#先计算年的日期
def sumyear(year):
i = 0
for i in range(1990,year):
i += daysyear(i)
return i
#计算月的日期总和
def summonth(month):
j = 0
for j in range(1,month):
j += daysmonth(j)
return j
#计算到1990年的日期总和
days = sumyear(year)+summonth(month)+day
if days%7==1:
print("星期三")
elif days%7==2:
print("星期四")
elif days%7==3:
print("星期五")
elif days%7==4:
print("星期六")
elif days%7==5:
print("星期日")
elif days%7==6:
print("星期一")
else:
print("星期二")
print(days)
测了几个都对的,代码太长了,没仔细看,先算闰年,再判断月份,再以一个固定日计算间隔日,除7算星期,思路应该没问题
datetime有这个可以返回星期几,可以搞个列表,上面代码封装个函数,两个都算下,循环验证下
import datetime
a = datetime.date(2020,10,18)
print(a.isoweekday()) 本帖最后由 聂嘉辉 于 2020-10-18 13:30 编辑
接楼上的思路,三行代码就可以判断。
import datetime
a = datetime.date(2020,10,18)
print(a.strftime('%A')) 草 用标准库也太草了{:10_289:} 百度蔡勒公式 疾风怪盗 发表于 2020-10-18 13:21
测了几个都对的,代码太长了,没仔细看,先算闰年,再判断月份,再以一个固定日计算间隔日,除7算星期,思 ...
新手小白刚接触。。。看不太懂 2018772155 发表于 2020-10-18 22:49
新手小白刚接触。。。看不太懂
?看不懂?????
就是用datetime库啊
页:
[1]