华为机考HJ73

计算日期到天数转换

http://www.nowcoder.com/questionTerminal/769d45d455fe40b385ba32f97e7bcded

歪瑞easy的一题!

####判断是否是闰年
def leap_year(year):
    if year%100==0:
        if year%4==0:
            flag=True
        else:
            flag=False
    else:
        if year%4==0:            
            flag=True
        else:
            flag=False
    return flag
#定义月份
days=[31,0,31,30,31,30,31,31,30,31,30,31]
while True:
    try:
        y, ***p(int, input().strip().split())
        #先抛出异常
        if (y<0 or m<1 or m>12 or d<1 or d>31 or (m==2 and d>29)):
            print(-1)
            break
        else:
            #进入正题
            if m==1:
                print(d)
            elif m==2:
                print(31+d)
            else:
                if leap_year(y):
                    days[1]=29
                    result=sum(days[:(m-1)])+d
                    print(result)
                else:
                    days[1]=28
                    result=sum(days[:(m-1)])+d
                    print(result)
    except:
        break
全部评论
如果输入2012 2 30应该返回-1 如果是2月,需要根据是否闰年判断日期是否符合要求吧
1 回复 分享
发布于 2021-03-13 23:07
其他都很好,唯独平年的2.29这个魔鬼日子会出错
点赞 回复 分享
发布于 2021-07-07 03:34
####判断是否是闰年 def leap_year(year): if((year%4==0 and year%100!=0) or (year%400==0 and year%3200!=0)): flag = True else: flag = False return flag
点赞 回复 分享
发布于 2021-07-27 19:51
没有检测类似4月31日这种不存在的情况
点赞 回复 分享
发布于 2021-09-24 14:20

相关推荐

28小凳也想实习:项目不用一个业务一个轮子吗,刷牛客好多人说要一业务一轮子
点赞 评论 收藏
分享
菜鸡29号:根据已有信息能初步得出以下几点: 1、硕士排了大本和大专 2、要求会多语言要么是招人很挑剔要么就是干的活杂 3、给出校招薪资范围过于巨大,说明里面的薪资制度(包括涨薪)可能有大坑
点赞 评论 收藏
分享
评论
4
6
分享

创作者周榜

更多
牛客网
牛客企业服务