计算今天是今年的第几天 星期几

编写程序,判断今天是今年的第几天。

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))

在这里插入图片描述

发布了51 篇原创文章 · 获赞 5 · 访问量 2146

猜你喜欢

转载自blog.csdn.net/weixin_44659084/article/details/103311344