描述
输入一个日期,输出这个日期是这一年的第几天
样例
输入
2023-3-14
输出
73
代码:
import datetime
a = input().split('-')
d1 = datetime.datetime(int(a[0]),int(a[1]),int(a[2]))
d2 = datetime.datetime(int(a[0]),1,1)
print((d1-d2).days+1)
代码解析:
import datetime
:导入datetime模块,用于处理日期和时间的操作。
a = input().split('-')
:输入一个日期,使用split()
方法以"-"为分隔符将其拆分为列表。
input()
用于接收用户的输入,这里是一个日期字符串。
split('-')
将日期字符串按照"-"分隔,返回一个包含拆分后的子字符串的列表。例如,输入"2022-06-15",则返回列表["2022", "06", “15”],分别表示年、月、日。
d1 = datetime.datetime(int(a[0]), int(a[1]), int(a[2]))
:创建一个datetime对象d1,表示输入的日期。
datetime.datetime()
是datetime模块中的一个类,用于表示日期和时间。
int(a[0])
、int(a[1])
、int(a[2])
将拆分后的列表中的元素转换为整数,分别表示年、月、日。
datetime.datetime(year, month, day)
创建一个datetime对象,表示具体的日期。
d2 = datetime.datetime(int(a[0]), 1, 1)
:创建一个datetime对象d2,表示输入日期的当年的1月1日。
这里的参数分别是输入日期的年份、月份(设置为1)、日份(设置为1)。
(d1 - d2).days + 1
:计算输入日期和当年1月1日之间的天数,并加1表示包括输入日期。
d1 - d2
计算两个日期之间的时间差,得到一个timedelta对象。
.days
访问timedelta对象的days属性,表示时间差的天数。
+ 1
将计算得到的天数加1,以包括输入日期。最终结果表示输入日期是该年的第几天。
print((d1 - d2).days + 1)
:输出计算得到的结果,即输入日期是该年的第几天。