0

因此,对于我的学校作业,我必须构建一个老化程序,该程序需要计算天数(天数)。它需要在文本窗口中,而不是图形窗口中。

我有这个:

Dayslived = (bob * 12 + (clock.month - month + 12)) * 30.4 + (clock.Day - day)

它有效,但如果您输入给程序一个月(如数字 4 = 四月),这是在当前月份之前,那么它不起作用。

我该如何解决?

4

1 回答 1

0
  1. 如果您需要 python 示例,请尝试以下操作:

    from datetime import date
    result = date.today() - date(2001, 1, 1)
    print(result.days)
    
  2. 另一种方式 - 使用两个 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
    

有关更详细的儒略日期算法,请阅读:儒略时期

于 2021-04-22T20:49:51.347 回答