当前位置:首页python > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击