在python中计算你的下一个生日的天数
发布时间:2020-05-23 11:12:40 所属栏目:Python 来源:互联网
导读:在上面的代码中,我想计算直到下一个生日的天数,但输出错误. 应该是什么: 我的出生日:2002年2月20日=我生日前203天(今天是2018年7月31日) 实际上是什么: 输入:2002年2月20日= 179天 我的代码: import datetimedef get_user_birthday(): year = int(input(
|
在上面的代码中,我想计算直到下一个生日的天数,但输出错误.
我的代码: 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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
