深度网站建设,广州市越秀区建设和水务局网站,网站设计与网站建设课程代码,章丘做网站单位哪家好你需要不止一个timedelta来说明多少年过去了#xff1b;你还需要知道开始(或结束)日期。(这是闰年的事。)最好的方法是使用dateutil.relativedeltaobject#xff0c;但这是第三方模块。如果您想知道从某个日期起的datetime年(默认为现在)#xff0c;可以执行以下操作#x…你需要不止一个timedelta来说明多少年过去了你还需要知道开始(或结束)日期。(这是闰年的事。)最好的方法是使用dateutil.relativedeltaobject但这是第三方模块。如果您想知道从某个日期起的datetime年(默认为现在)可以执行以下操作from dateutil.relativedelta import relativedeltadef yearsago(years, from_dateNone):if from_date is None:from_date datetime.now()return from_date - relativedelta(yearsyears)如果你愿意坚持使用标准库答案就更复杂了from datetime import datetimedef yearsago(years, from_dateNone):if from_date is None:from_date datetime.now()try:return from_date.replace(yearfrom_date.year - years)except ValueError:# Must be 2/29!assert from_date.month 2 and from_date.day 29 # can be removedreturn from_date.replace(month2, day28,yearfrom_date.year-years)如果是2/29而18年前没有2/29这个函数将返回2/28。如果您希望返回3/1只需将最后一个return语句改为return from_date.replace(month3, day1,yearfrom_date.year-years)你的问题本来是想知道从某个日期到现在有多少年了。假设您需要整数年数可以根据每年365.25天进行猜测然后使用上面定义的yearsago函数之一进行检查def num_years(begin, endNone):if end is None:end datetime.now()num_years int((end - begin).days / 365.25)if begin yearsago(num_years, end):return num_years - 1else:return num_years