编写程序,判断今天是今年的第几天。
import calendar
def ndays(y,m,d):
'''返回y年第m月的第d天 是今年第多少天'''
monthDay=[31,28,31,30,31,30,31,31,30,31,30,31]
days=0
for i in range(0,m-1):
days=days+monthDay[i]
days=days+d
#判断闰年也可以用if((y%4==0 and y%100!=0) or(y%400==0))
if(m>2 and calendar.isleap(y)):
days+=1
return days
if __name__=="__main__":
y=int(input("请输入年份:"))
m=int(input("请输入月份:"))
d=int(input("请输入天数:"))
print(ndays(y,m,d))
扩展 算出给出的天数是星期几
import calendar
def ndays(y,m):
'''返回m月的天数'''
monthDay=[31,28,31,30,31,30,31,31,30,31,30,31]
days=monthDay[m-1]
if(m==2 and calendar.isleap(y)):
days+=1
return days
def caldays(y,m,d):
'''返回从1年1月1日到{}年{}月{}日共{}天的天数'''
sumdays = 0
for i in range(1,y):
if(calendar.isleap(i)):
sumdays+=366
else:
sumdays+=365
for j in range(1,m):
sumdays+=ndays(y, j)
# monthday=[31,28,31,30,31,30,31,31,30,31,30,31]
# for j in range(m-1): #计算从一年一月一日到输入的年月 减一为了避免多算一个月
# sumdays+=monthday[j]
# if(m==2 and isleap(y)):
# sumdays+=1
sumdays+=d
return(sumdays)
weeks=dict(zip([0,1,2,3,4,5,6],\
["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]))
if __name__ == '__main__':
y = int(input("请输入年份:"))
m = int(input("请输入月份:"))
d = int(input("请输入天份:"))
week = weeks[caldays(y, m, d) % 7]
print("{}年{}月{}日是{}".format(y, m, d, week))