Python解题:给定用于表示年、月、日的3个整数y、m和d,判定该日期是该年的第几天。
作者:野牛程序员:2023-05-02 19:19:58python阅读 2537
给定用于表示年、月、日的3个整数y、m和d,判定该日期是该年的第几天。 【相关说明】 输入条件 输入用于表示日期(年、月、日)的3个正整数y、m和d,肯定是正整数,但是否属于合法的日期数据未知。 【输出要求】 返回值为整型,具体定义如下: 如所给日期数据不合法,返回-1 如所给日期数据合法,则返回该日期是该年的第几天。以2019-1-1为例,该日期是2019年的第1天,则返回1 【其它要求】 将代码写入函数func1 【测试用例】 输入 2019,1,32 返回 -1 输入 2019,3,1 返回 60
def func1(y, m, d): # 判断年份是否合法 if y <= 0: return -1 # 判断月份是否合法 if m < 1 or m > 12: return -1 # 判断日期是否合法 days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 每个月的天数,2月会根据闰年调整 if y % 4 == 0 and (y % 100 != 0 or y % 400 == 0): days_in_month[2] = 29 # 如果是闰年,2月有29天 if d < 1 or d > days_in_month[m]: return -1 # 计算该日期是该年的第几天 days_in_year = sum(days_in_month[:m]) + d # 从1月到该月的天数之和,再加上该月的天数 return days_in_year # 输入年、月、日 y, m, d = map(int, input("请输入年、月、日,以逗号分隔:").split(",")) # 调用函数计算日期是该年的第几天 day_of_year = func1(y, m, d) # 输出结果 if day_of_year == -1: print("-1") else: print(day_of_year)
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892