1

我有一个功能,getHoursSince()

def getHoursSince (date):

    prior = datetime.datetime.now() - datetime.timedelta(days=date)

    priorHour = prior.hour

    hoursSinceDate = ...

    return hoursSinceDate

所以,我可以得到一个日期对象,给定一个常量值,即如果yesterday = 1,我可以调用getHoursSince(yesterday)。我不知道如何获取变量之间的小时数datetime.datetime.now()——priorHour有什么想法吗?

4

2 回答 2

4

你走错了路;您只需将时间转换timedelta()为小时:

def getHoursSince(date):
    return int(datetime.timedelta(days=date).total_seconds() // 3600)

这使:

>>> getHoursSince(1)
24
>>> getHoursSince(1.5)
36
>>> getHoursSince(2)
48
>>> getHoursSince(3)
72

但是您也可以通过简单的算术来确定它:

def getHoursSince(date):
    return int(24 * date)
于 2013-03-19T22:38:08.010 回答
1

timedelta.total_seconds()文档说:

对于秒以外的间隔单位,直接使用除法形式(例如td / timedelta(microseconds=1))。

在这种情况下,情况如下:

def getHoursSince(date):
    return datetime.timedelta(days=date) // datetime.timedelta(hours=1)
于 2020-06-21T00:31:05.220 回答