python判断某一天是一年中的第几天

# F1
dat = input('请输入某年某月某日,格式为yyyy-mm-dd: ')
y = int(dat[0:4]) # 获取年费
m= int(dat[5:7]) # 获取月份
d = int(dat[8:]) # 获取日

ly = False
if y%100 == 0: # 若年份能被100整除
    if y%400 == 0: # 且能被400整除
        ly = True # 则是闰年
    else:
        ly = False
elif y%4 == 0: # 若能被4整除
     ly = True # 则是闰年
else:
    ly = False

if ly == True: # 若是闰年,则二月为29天
    ms = [31, 29, 31, 30, 31,30, 31, 31, 30, 31, 30, 31]
else:
    ms = [31, 28, 31, 30, 31,30, 31, 31, 30, 31, 30, 31]
days = 0

for i in range(1,13): # 从1到12判断,已确定月份
    if i == m:
        for j in range(i-1): # 确定月份i之后,则将ms列表中的前i-1项相加
           days += ms[j]
        print('%s是该年份的第%s天' % (dat, (days +d)))


# F2 datetime模块
import datetime

y = int(input('请输入4位数据的年份:'))
m = int(input('请输入月份:'))
d = int(input('请输入那一天:'))

sday = datetime.date(y, m, d)
print(type(sday), sday)

count = sday - datetime.date(sday.year - 1, 12 ,31) # 减去上一年最后一天
# 2017-12-31
print(sday.month)
print(count,type(count))
print('%s是%s年的第%s天' % (sday, y ,count.days))
posted @ 2018-08-26 22:13  此时相望不相闻  阅读(379)  评论(0编辑  收藏  举报