Python中timedelta对象的百分比?
我正在开发一个高级计时和时间统计应用程序。我使用PythonPython中timedelta对象的百分比?,python,datetime,timedelta,Python,Datetime,Timedelta,我正在开发一个高级计时和时间统计应用程序。我使用Pythontimedelta对象来表示应用程序中的时间跨度 我想弄清楚的是,是否有一种方法可以表示timedelta对象的任意部分 为timedelta提供的运算符仅允许使用整数。您可以将时间增量乘以整数,也可以将其除以整数,但使用浮点数两者都不能 我想做两件事: 1:给定一个timedelta对象,计算它的任意百分比。换句话说,乘或除浮点数的能力: from datetime import timedelta import math td =
timedelta
对象来表示应用程序中的时间跨度
我想弄清楚的是,是否有一种方法可以表示timedelta对象的任意部分
为timedelta提供的运算符仅允许使用整数。您可以将时间增量乘以整数,也可以将其除以整数,但使用浮点数两者都不能
我想做两件事:
1:给定一个timedelta对象,计算它的任意百分比。换句话说,乘或除浮点数的能力:
from datetime import timedelta
import math
td = timedelta(1)
newTd = td * 0.01 # 1% of the time delta specified in td
newTd = td * 1.04 # 104% of the time delta given in td
newTd = td * math.pi # the timedelta multiplied by pi (lol)
2:给定两个timedelta对象,计算出一个timedelta给定的时间跨度相对于另一个timedelta的百分比作为浮点:
from datetime import timedelta
td1 = timedelta(1)
td2 = timedelta(2)
td1 / td2 # should give me 0.5
td2 = timedelta(days=4, minutes=50)
td1 / td2 # not sure what this would result in, but, the percentage of time 1 day fills out of 4 days and 50 minutes of time
这两个都要求我能够使用浮动操作timedelta对象。我不确定这是否能做到。那么,可以这样做吗?如果不可以,还有更好的替代方法吗?您可以使用
.total_seconds()
从timedelta
中获取秒数并使用它
>>> from datetime import timedelta
>>> td1 = timedelta(1)
>>> td2 = timedelta(2)
>>> td1.total_seconds() / td2.total_seconds() # should give me 0.5
0.5
>>> td2 = timedelta(days=4, minutes=50)
>>> td1.total_seconds() / td2.total_seconds()
0.24784853700516352
在python3中,您可以使用浮点直接对timedelta对象进行操作,或者分割两个timedelta对象以获得一个浮点。