下面是一些用于创建示例的示例代码。
import datetime
a1 = datetime.datetime(1999, 3, 1, 2)
a2 = datetime.datetime(1999, 2, 28, 0)
b1 = datetime.datetime(2000, 3, 1, 2)
b2 = datetime.datetime(2000, 2, 28, 0)
res_a = a1 - a2 # not a leap-year
res_b = b1 - b2 # is a leap-year
print("\n>> TIME DIFFERENCE\n ... {} minus {}\n ... {}\n".format(a1, a2, res_a))
print(">> FUTURE TIME\n ... {} + {}\n ... {}\n".format(a1, res_a, a1+res_a))
print(">> TIME DIFFERENCE\n ... {} minus {}\n ... {}\n".format(b1, b2, res_b))
print(">> FUTURE TIME\n ... {} + {}\n ... {}\n".format(b1, res_b, b1+res_b))
print(">> FUTURE TIME\n ... {} + {}\n ... {}\n".format(a2, res_b, a2+res_b))运行上面的代码会产生以下输出。
>> TIME DIFFERENCE
... 1999-03-01 02:00:00 minus 1999-02-28 00:00:00
... 1 day, 2:00:00
>> FUTURE TIME
... 1999-03-01 02:00:00 + 1 day, 2:00:00
... 1999-03-02 04:00:00
# *****
>> TIME DIFFERENCE
... 2000-03-01 02:00:00 minus 2000-02-28 00:00:00
... 2 days, 2:00:00
>> FUTURE TIME
... 2000-03-01 02:00:00 + 2 days, 2:00:00
... 2000-03-03 04:00:00
# *****
>> FUTURE TIME
... 1999-02-28 00:00:00 + 2 days, 2:00:00
... 1999-03-02 02:00:00在检查闰年(第一个*****)期间从2月28日到3月1日之间经过的时间时,有额外的一天是有道理的。但是,当将此时间差与原始日期(例如2月28日)相加时,输出为原始日期(second *****)的相加一天。
出于我的目的,我正在读取时间序列数据,并使用经过的小时数和相应的日期时间创建一个数据集。考虑到代码的行为,我不太确定如何继续。这是模块中的错误,还是与正确读取日历的方式有关?
发布于 2018-03-03 07:12:54
这是一个愚蠢的错误。
最后一条print语句应读作
print(">> FUTURE TIME\n ... {} + {}\n ... {}\n".format(b2, res_b, b2+res_b))生成以下输出
>> FUTURE TIME
... 2000-02-28 00:00:00 + 2 days, 2:00:00
... 2000-03-01 02:00:00https://stackoverflow.com/questions/49068123
复制相似问题