2

我想知道如何操作 Datetime 和 Time delta 对象。我正在编写一个游戏,其中不同的行星有不同的时间尺度。我想知道如何修改日期时间对象。

例如,如果我有一个日期时间对象 - 一些过去的日期时间对象,我想知道是否有可能知道 6 小时可能有多少次不同以及剩余的分钟数是多少?

例如...

now = datetime.now()
then = some datetime object
diff = now - then
num 6 hour blocks = diff / 6 (rounded down)
minutes = diff % 6

谢谢!

4

2 回答 2

3

timedelta 对象在 Python 2.7 中有一个 total_seconds 方法。所以你可以用它来解决它。当您从另一个日期时间对象中减去一个日期时间对象时,您会得到一个 timedelta 对象。

from datetime import timedelta

minutes = 60
hours = 60 * minutes
days = 24 * hours

diff = timedelta(days=6)

days_in_the_past = int(diff.total_seconds() / days)
hours_remainder = diff.total_seconds() % days

hours_in_the_past = int(diff.total_seconds() / hours)
seconds_remainder = diff.total_seconds() % hours

这就是你想做的吗?如果您使用的是旧版本的 Python,那么您可以定义一个与 total_seconds 方法执行相同操作的函数,如下所示:

def total_seconds(timedelta_object):
    return timedelta_object.days * 86400 + timedelta_object.seconds
于 2012-04-02T08:55:51.923 回答
0

timedelta对象只有days,secondsmicroseconds字段,所以我猜你必须使用几个小时和几分钟seconds

num_blocks = diff.seconds//(6*3600)
minutes = (diff.seconds%(6*3600))//60
于 2012-04-02T08:30:03.320 回答