10

この質問は、 Pythonとオブジェクトについて (別のスレッド)に出くわしたときに始まりました。datetimetimedelta

私は更新をフォローしjimgardener、コメントを読んで、eyquemいくつかの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

これは、 t2 が t1 に続くと仮定するのと同じです。duration between t1(23:30:00 PM) and t2(00:15:30 AM)

私の質問は、 td1 は前の真夜中 から 23:30:00 PM までの期間であり、 td2 はその真夜中 から 00:15:30 AM までの期間であるため、それらの差は t2 と t1 の間の期間をどのように表すことができますか?

一部のpythonグルは説明できますか

4

1 に答える 1

10

s は真夜中からの時間を表すのtimedeltaではなく、単に時間を表します

何かをするのに三時間マイナス四時間かかるなら、マイナス一時間かかる。

timedelta2 つの sの差は、マイナス 1 日プラス45 分です。

これは、マイナス 23 時間 15 分と同じです。

15 分- 23 時間 30 分は- 23 時間15 分です。

于 2011-08-17T11:04:04.810 に答える