Python 练习实例4

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

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

程序源代码:

方法一

p = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  # 平年
w = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  # 闰年

year = int(input("请输入年份: "))
month = int(input("请输入月份: "))
day = int(input("请输入日期: "))

# 判断闰年,平年
if year % 100 == 0:
    if year % 400 == 0:
        d = w
    else:
        d = p
else:
    if year % 4 == 0:
        d = w
    else:
        d = p

# 计算天数
days = sum(d[0:month-1])+day
print("%d年%d月%d日是%d年的第%s天。" % (year, month, day, year, days))

方法二

year = int(input('请输入年份:'))
month = int(input('请输入月份:'))
day = int(input('请输入日期:'))

months1 = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]  # 闰年
months2 = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]  # 平年

if ((year % 4 == 0)and(year % 100 != 0)) or ((year % 100 == 0) and (year % 400 == 0)):
    dth = months1[month-1] + day
else:
    dth = months2[month-2] + day
print("是该年的第%d天" % dth)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值