gpt4 book ai didi

python - 在 python 中计算到你下一个生日的天数

转载 作者:太空狗 更新时间:2023-10-29 22:24:23 25 4
gpt4 key购买 nike

在上面的代码中,我想计算到下一个生日的天数,但输出是错误的。它应该是什么:我的生日: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)

最佳答案

几个问题:

  1. 年份必须指定为完整整数,即 2002,而不是 02(或 2)。
  2. 您需要检查您今年的生日是否已过。

下面是解决这两个问题的解决方案。根据您输入的日期 20-Feb-2002 和今天的日期 31-Jul-2018,您的下一个生日是 203 天后。

此外,请注意您可以使用 timedelta 对象的 days 属性,它会向下舍入到 203 天并避免小数精度。

from datetime 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(2000+year,month,day)
return birthday

def calculate_dates(original_date, now):
delta1 = datetime(now.year, original_date.month, original_date.day)
delta2 = datetime(now.year+1, original_date.month, original_date.day)

return ((delta1 if delta1 > now else delta2) - now).days

bd = get_user_birthday()
now = datetime.now()
c = calculate_dates(bd, now)

print(c)

When is your birthday? [YY] 02
When is your birthday? [MM] 02
When is your birthday? [DD] 20

113

关于python - 在 python 中计算到你下一个生日的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com