菜鸟教程 练习实例4 (python3)

题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:

# -*- coding:utf-8 -*-
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))
months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
if 0 < month <= 12:
    sum = months[month - 1]
else:
    print('data error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
    leap = 1
if (leap == 1) and (month > 2):
    sum += 1
print('it is the %dth day.' % sum)
# -*- coding:utf-8 -*-


def main():
    year = int(input('year:\n'))
    month = int(input('month:\n'))
    day = int(input('day:\n'))
    months_leap = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  # 闰年
    months_flat = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  # 平年
    days = 0
    if year % 100 == 0:
        if year % 400 == 0:  # 闰年
            for i in range(0, month):
                days += months_leap[i]
            days += day
        else:  # 平年
            for i in range(0, month):
                days += months_flat[i]
            days += day
    elif year % 4 == 0:  # 闰年
        for i in range(0, month):
            days += months_leap[i]
        days += day
    else:  # 平年
        for i in range(0, month):
            days += months_flat[i]
        days += day
    print('It is the %dth days.' % days)


main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值