多时间域Django计算

2024-05-23 14:22:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个webapp,它应该使用几个TimeField对象进行计算。 不,我有一次卡住了。怎么可能把不同的TimeFields加在一起,然后从结果TimeField中减去一个DecimalField。 我试过不同的方法。例如,将TimeFields转换为str-object(这也不起作用……)。你们有人知道我怎么处理这个问题吗?一个小小的暗示对我来说是一种乐趣。 谢谢


Tags: 对象方法objectwebappstrdecimalfieldtimefieldtimefields
1条回答
网友
1楼 · 发布于 2024-05-23 14:22:20

你到底想做什么我得先猜猜

记住TimeField携带datetime.time对象,即“时钟时间”,即从午夜到午夜。 我假设你想把它们转换成一种形式,你可以处理算术秒,因为午夜可以很好的工作

为了简单起见,我在这里使用原始datetime.time对象,但Django的TimeFields也是这样

import datetime, decimal

def to_seconds_after_midnight(t):
    return t.hour * 60 * 60 + t.minute * 60 + t.second + (t.microsecond / 1000000.)

hourly_fee = decimal.Decimal(90)  # for example.

time_1 = datetime.time(13, 15)
time_2 = datetime.time(16, 20)

second_interval = decimal.Decimal(
    to_seconds_after_midnight(time_2) -
    to_seconds_after_midnight(time_1)
)
print(hourly_fee * (second_interval / 60 / 60))  # The output is 277.5.

HTH:)

相关问题 更多 >