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 に答える