因此,对于我的学校作业,我必须构建一个老化程序,该程序需要计算天数(天数)。它需要在文本窗口中,而不是图形窗口中。
我有这个:
Dayslived = (bob * 12 + (clock.month - month + 12)) * 30.4 + (clock.Day - day)
它有效,但如果您输入给程序一个月(如数字 4 = 四月),这是在当前月份之前,那么它不起作用。
我该如何解决?
因此,对于我的学校作业,我必须构建一个老化程序,该程序需要计算天数(天数)。它需要在文本窗口中,而不是图形窗口中。
我有这个:
Dayslived = (bob * 12 + (clock.month - month + 12)) * 30.4 + (clock.Day - day)
它有效,但如果您输入给程序一个月(如数字 4 = 四月),这是在当前月份之前,那么它不起作用。
我该如何解决?
如果您需要 python 示例,请尝试以下操作:
from datetime import date
result = date.today() - date(2001, 1, 1)
print(result.days)
另一种方式 - 使用两个 Julian Day 之间的差异:
def convert_to_julian_day(day, month, year):
"""
Convert Gregorian calendar date to Julian Day(JD).
"""
a = (14 - month) / 12
b = year + 4800 - a
c = month + 12 * a - 3
jd = day + (153 * c + 2) / 5 + 365 * b + b / 4 - b / 100 + b / 400 - 32045
return int(jd)
jd_today = convert_to_julian_day(22, 4, 2021)
jd_born_date = convert_to_julian_day(1, 1, 2010)
age_in_days = jd_today - jd_born_date
print(age_in_days) # 4130 days
有关更详细的儒略日期算法,请阅读:儒略时期