您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:22:09 python 字数 3524 阅读 545 来源 www.jb51.cc/python

在上面的代码中,我想计算直到下一个生日的天数,但输出错误. 应该是什么: 我的出生日:2002年2月20日=>我生日前203天(今天是2018年7月31日) 实际上是什么: 输入:2002年2月20日=> 179天 我的代码: import datetime def get_user_birthday(): year = int(input('When is your birthday

概述

我的代码

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)

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

以下是解决这两个问题的解决方案.鉴于您在2002年2月20日和今天的日期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,day)
    return birthday

def calculate_dates(original_date,Now):
    delta1 = datetime(Now.year,original_date.day)
    delta2 = datetime(Now.year+1,original_date.day)
    days = (max(delta1,delta2) - Now).days
    # alternatively:
    # days = max(delta1,delta2).total_seconds() / 60 / 60 /24

    return 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中计算你的下一个生日的天数所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶