日期差异以天数分数表示

9 投票
2 回答
5010 浏览
提问于 2025-04-18 17:48

我有两个日期(时间对象),我想把它们相减。我要得到的结果是这两个日期之间的天数。这是我现在的做法:

def get_days_between(datePast, dateFuture):
   difference = dateFuture - datePast
   return difference.days

问题是,我需要的天数是一个小数。例如:如果这两个日期相差只有12个小时,我希望结果是0.5天。

我该怎么做才能实现这个呢?

2 个回答

0

要获取一个小数形式的时间差,可以参考 timedelta.total_seconds() 的实现方法:

如果你想用秒以外的时间单位,直接用除法就可以了(比如 td / timedelta(microseconds=1))。

(https://docs.python.org/3/library/datetime.html#module-datetime)

所以在我们的例子中,我们需要用一天来做除法:

from datetime import timedelta

def get_days_between(datePast, dateFuture):
   return (dateFuture - datePast) / timedelta(days=1)
20

在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够好,或者是我们对某些概念理解得不够透彻。比如,有些人可能在使用某个功能时,发现它的表现和预期不一样,这时候就需要仔细检查代码,看看是不是哪里出了问题。

另外,编程的世界里有很多工具和库可以帮助我们完成任务,但这些工具的使用方法可能会让人感到困惑。为了更好地使用这些工具,我们需要多加练习,并且参考一些教程或文档,帮助我们理解它们的工作原理。

总之,编程是一项需要不断学习和实践的技能,遇到问题时不要气馁,耐心寻找解决方案,慢慢就能掌握更多的知识和技巧。

from datetime import timedelta

def get_days_between(datePast, dateFuture):
   difference = dateFuture - datePast
   return difference.total_seconds() / timedelta(days=1).total_seconds()

撰写回答