输入某年某月某日,判断这一天是这一年的第几天

本文介绍了两种方法来确定输入的年月日是该年内的第几天,包括利用reduce和lambda函数的方法,以及使用更简单的sum函数实现。请注意,输入的日期必须正确,否则结果将不准确。
摘要由CSDN通过智能技术生成

注意:以下方法都没有对输入的年月日判断是否正确的语句,所以均须输入正确的年月日,才能返回正确的天数。

方法一:

from functools import reduce
def num(year, month, day):
    """输入某年某月某日,判断这一天是这一年的第几天"""
    L1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]    # 平年对应月份的天数
    L2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]    # 闰年对应月份的天数
    if month == 1:    # 对月份为1的情况进行单独处理
        days =day
    elif year % 4 == 0 and year % 100 != 0 or year % 400 == 0:    # year为普通闰年(能被4整除但不能被100整除的年份)或者世纪闰年(能被400整除的为世纪闰年)的情况
        days = reduce(lambda x, y: x + y,L2[:month-1]) + day
    else:    # year为平年的情况
        days = reduce(lambda x, y: x + y,L1[:month-1]) + day
    return days

while True:    # 这是一个无限循环,只有用户输入q确认后才用break中断,退出循环。
    print("告诉我几年几月几日,我将告诉你这一天是这一年的第几天。")
    print("输入'q'退出。")
    year = input("请输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值