我希望在x天之前的几天内进行倒计时。我试过这个:
from datetime import datetime, timedelta
date = input('Enter your date: ')
delta = datetime.strptime(date, '%Y-%m-%d') - datetime.now()
print("We'll be {} in {} days".format(date, delta.days))
使用说2016-09-27
,但它给我的结果是8 days
,当它真的感觉应该是9 days
(EDT)时。
还有什么我想念的吗?
答案 0 :(得分:1)
在datetime.timedelta
上引用文档:
仅在内部存储天,秒和微秒。参数 转换为这些单位:
毫秒转换为1000微秒。一分钟转换 到60秒。一小时转换为3600秒。一周是 转换为7天。
因此,基本上,你的delta是d天,s秒和m微秒,但你决定只打印d
部分。
您需要提出一种算法,将d
,s
和m
转换为"用户友好型" delta版本。
对于非常简单,可能足够的解决方案:
from datetime import datetime, timedelta, date
datetime_today = datetime.fromordinal(date.today().toordinal())
d = input('Enter your date: ')
delta = datetime.strptime(d, '%Y-%m-%d') - datetime_today
print("We'll be {} in {} days".format(d, delta.days))
# We'll be 2016-09-27 in 9 days