Python 练习实例4
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
year = int(raw_input('year:\n'))
month = int(raw_input('month:\n'))
day = int(raw_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
以上实例输出结果为:
year: 2015 month: 6 day: 7 it is the 158th day.
参考解法:
闰年需要同时满足以下条件:
参考解法:
参考解法:
参考解法:
参考方法:
参考方案:
参考方法:
Python3 参考解法:
真正意义上自己思考写出来的第一题,撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
参考方法:
通过计算输入的日期与相应年份1月1日相差的秒数,然后除以每天的秒数3600*24,即可得到输入日期的天数
考虑实际的情况,比如输入月份为13月或输入天数为65天时候报错(日期仅校对0-31天,未按照实际日期校对):
通过输入时间点的unix时间戳和输入年份首日的Unix时间戳之间的差,来计算经过的时间
python3 利用time模块,简洁写法:
Python2.x 与 Python3.x 兼容:
分享一下我的答案:
加入异常处理,确保日期输入格式正确: