python 实战28 输入年月日,判断这一天是这一年的第几天?

题目内容:

给定年月日,如2019/1/8,打印输出这一天是该年的第几天。

输入格式:

共一行,为一个字符串,年月日之间以’/'隔开,如2019/1/8。

输出格式:

共一行,为一个正整数。

输入样例

2019/1/8

输出样例:

8

My answer
思路1:刚学到了时间库,用上time库,然后我们要将输入的格式转换成计算机能识别的格式,time.strptime()。tm_yday可以直接得出是今年的第几天。题外话,strptime和strftime傻傻分不清楚,据说,strftime是 str-format-time, 时间字符串格式化,即我们看到的格式;strptime是str-parse-time,时间字符串语法化,即计算机理解的格式

import time
day = input()
f = time.strptime(day, '%Y/%m/%d')
print(f.tm_yday)

思路2:用datetime库,把当年的1月1号strptime,把输入的日期strptime,然后两个相减

from datetime import *

d = input()
d1 = datetime.strptime(d[:4] + '/1/1', '%Y/%m/%d')
d2 = datetime.strptime(d, '%Y/%m/%d')
print((d2 - d1).days+1)

你可能感兴趣的:(python实战)