如何在 python 中获取时间增量的百分比

How to get a percentage of a timedelta in python

我有两个日期时间对象 给了我一个 timedelta (time01 - time02)。

我想得到一个特定的timedelta,是之前timedelta的6%。有正确的方法吗?

这是我的尝试和输出:

import datetime

sunrise = datetime.datetime.fromtimestamp(/*a timestamp*/)
sunset = datetime.datetime.fromtimestamp(/*a timestamp*/)
sunTime = datetime.timedelta(hours=sunset.hour-sunrise.hour, minutes=sunset.minute-sunrise.minute, seconds=sunset.second-sunrise.second)

...

print sunrise-datetime.timedelta(sunTime*0.06)

输出:

sunrise - datetime.timedelta(sunTime*0.06):
TypeError: unsupported operand type(s) for *: 'datetime.timedelta' and 'float'

谢谢!

时间戳以秒为单位,所以这应该有效

import datetime

sunrise = datetime.datetime.fromtimestamp(/*sunrise timestamp*/)
offset = int((/* sunset timestamp */ - /* sunrise timestamp */) * .06)

print sunrise-datetime.timedelta(seconds=offset)

这应该有效:

sunrise = datetime.datetime.fromtimestamp(/*a timestamp*/)
sunset = datetime.datetime.fromtimestamp(/*a timestamp*/)
sunTime = sunset-sunrise

...

print sunrise-datetime.timedelta(seconds=sunTime.total_seconds()*0.06)

例如,您可以操纵 timedelta 的输入,而不是操纵 timedelta

import datetime

percent = 0.06    
sunrise = datetime.datetime.fromtimestamp(/*a timestamp*/)
sunset = datetime.datetime.fromtimestamp(/*a timestamp*/)

sunTime = datetime.timedelta(hours=(sunset.hour-sunrise.hour)*percent,
                             minutes=(sunset.minute-sunrise.minute)*percent,
                             seconds=(sunset.second-sunrise.second)*percent)
print sunTime

实现同样的效果,只创建一个timedelta对象。