【发布时间】:2018-08-08 03:45:15
【问题描述】:
如何将任何日期转换为天数?这是我尝试过的:
import datetime
import calendar
def leap_day_counter(yr):
leap_days = 0
# since 1582 11 days are missing
if yr >= 1582:
leap_days += 11
for specific_year in range(1, yr):
if calendar.isleap(specific_year):
leap_days += 1
return leap_days
def month_to_day(yr, mth):
all_days = 0
for specific_month in range(1, mth+1):
days_in_month = calendar.monthrange(yr, specific_month)
all_days += days_in_month[1]
return all_days
date = datetime.datetime.now()
days_passed = ((date.year * 365) + leap_day_counter(date.year)) + month_to_day(date.year, date.month) + date.day
print(days_passed)
我有 737 158 天,但根据 https://www.timeanddate.com/date/durationresult.html 我应该有 736 755 天。我错过了什么吗?有更简单的方法吗?
【问题讨论】:
-
您知道自 1582 年以来就有 11 days have gone missing 吗? ...再看一遍:啊,你的差异比那大得多,所以这不是唯一的问题。
-
天数……从什么开始?年初?第一年?你的生日?
-
@Hsin Year 0 does not exist
-
year_one = datetime.datetime(1,1,1);(date-year_one).days产生 736752。^^ -
@Hsin 另外,可能值得一读Falsehoods programmers believe about time
标签: python python-3.x python-2.7 date datetime