在上面的代码中,我想计算到下一个生日的天数,但输出是错误的。应该是什么:我的生日:2002 年 2 月 20 日 => 我生日前 203 天(今天是 2018 年 7 月 31 日)实际是什么:输入:2002 年 2 月 20 日 => 179 天
我的代码:
import datetime
def get_user_birthday():
year = int(input('When is your birthday? [YY] '))
month = int(input('When is your birthday? [MM] '))
day = int(input('When is your birthday? [DD] '))
birthday = datetime.datetime(year,month,day)
return birthday
def calculate_dates(original_date, now):
date1 = now
date2 = datetime.datetime(now.year, original_date.month, original_date.day)
delta = date2 - date1
days = delta.total_seconds() / 60 /60 /24
return days
def show_info(self):
pass
bd = get_user_birthday()
now = datetime.datetime.now()
c = calculate_dates(bd,now)
print(c)
原文由 Ethan 发布,翻译遵循 CC BY-SA 4.0 许可协议
几个问题:
以下是纠正这两个问题的解决方案。根据您输入的日期 20-Feb-2002 和今天的日期 31-Jul-2018,您的下一个生日是 203 天后。
此外,请注意,您可以使用
timedelta
对象的days
属性,它将向下舍入到 203 天并避免小数精度。