fdm*_*ion 3 python datetime timedelta
我正在研究高级计时和时间统计应用程序.我正在使用Python timedelta对象来表示应用程序中的时间跨度.
我想弄清楚的是,是否有办法表示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)
Run Code Online (Sandbox Code Playgroud)
2:给定两个timedelta对象,计算一个timedelta给出的时间跨度相对于另一个时间delta作为float的百分比:
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
Run Code Online (Sandbox Code Playgroud)
这两个都要求我能够使用浮点数对timedelta对象进行操作.我不确定是否可以这样做.那么,可以做到,如果没有,是否有更好的替代方案?
你可以得到从秒数timedelta与.total_seconds()和使用.
>>> 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |