python 日期加减法_python timedelta减法行为

这个问题起源于我遇到(another thread)关于python的datetime和timedelta实例时

我用jimgardener跟踪更新,用eyquem阅读注释,并尝试了一些python代码..我不太理解这里的工作方式(由于我的python新手的状态)…我认为应该问一个新问题import datetime

#for t1=23:30:00 PM

t1 = datetime.time(23,30,00)

#for t1=00:15:30 AM

t2 = datetime.time(0,15,30)

td1 = datetime.timedelta(hours=t1.hour,minutes = t1.minute,seconds=t1.second)

td2 = datetime.timedelta(hours=t2.hour,minutes = t2.minute,seconds=t2.second)

#substarcting timedeltas

tdiff = td2-td1

打印这些变量td1 ==> datetime.timedelta(0, 84600)

td1.seconds ==> 84600

td2 ==> datetime.timedelta(0, 930)

td2.seconds ==> 930

tdiff ==> datetime.timedelta(-1, 2730)

当我看到这些结果时,我注意到td1.seconds (ie 84600) is equivalent to

84600/60 ==> 1410 minutes

1410/60 ==> 23.5 hours

or in short,td1 represents the duration **from previous midnight** to 23:30 PM

现在td2.seconds (ie 930) is equivalent to

930/60 ==> 15.5 minutes or 15 minutes and 30 seconds

which means td2 represents the duration from **that midnight**

to 00:15:30 AM

当检查tdiff时,我发现tdiff ==> timedelta(-1,2730)

tdiff.seconds ==> 2730

tdiff.seconds/60 ==>45 minutes

这与duration between t1(23:30:00 PM) and t2(00:15:30 AM)假设t2跟在t1后面一样

我的问题是,因为td1是前一个午夜的持续时间

到23:30:00 PM,td2是从午夜开始的持续时间

到凌晨00:15:30,它们的差异如何表示t2和t1之间的持续时间?

一些python专家能解释一下吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值