時間をfor文を使って合算したいのですが、上手くいきません。
時間 | |
---|---|
1 | 13:00 |
2 | 0:00 |
3 | None |
4 | 8:00 |
5 | 15:50 |
<行いたいこと>
13:00+0:00+8:00+15:00
<書いてみたコード> str(data_kintai_extract[x][9])が表の時間の列の13:00などを表しています。 data_kintai_extractが表の列の数(1~5)までを for文を回して合計が取得できないかと思い書きました。 import datetime import time minute_totall = datetime.timedelta(hours=None, minutes=None) for x in range(len(data_kintai_extract)): time1 = str(data_kintai_extract[x][9]) def str2timedelta(s): hours, minutes = map(int, s.split(":")) return datetime.timedelta(hours=hours, minutes=minutes) jistudotime = str2timedelta(time1) minute_totall += jistudotime time2 = str(minute_totall)[:-3] #メッセージ表示 self.msg_display(time2, sleep_time = 0.5) ri.Check_List(self, data_kintai_extract, 3, 2)
<出てきたエラー>
unsupported type for timedelta minutes component: NoneType
<試したこと>
minute_totall の宣言を
1.minute_totall = datetime.timedelta(None)
2.minute_totall = 0
(2.では 「or +=: 'int' and 'datetime.timedelta'」のエラーが表示されました)
3.minute_totall = str2timedelta(None)
(3.では 「local variable 'str2timedelta' referenced before assignment」の
エラーが表示されました)
<編集2>書き直してみました。 minute_totall = datetime.timedelta(hours=0, minutes=0) self.msg_display(minute_totall, sleep_time = 0.5) for x in range(len(data_kintai_extract)): time1 = str(data_kintai_extract[x][9]) def str2timedelta(s): hours, minutes = map(int, s.split(":")) return datetime.timedelta(hours=hours, minutes=minutes) jistudotime = str2timedelta(time1) self.msg_display(jistudotime, sleep_time = 0.5) minute_totall += jistudotime self.msg_display(minute_totall, sleep_time = 0.5) time2 = str(minute_totall)[:-3] #メッセージ表示 self.msg_display(time2, sleep_time = 0.5)
<困っていること>minute_totall の宣言のエラーの表示はされなくなったのですが
7 days, 12:25:00 のような形で出力されてしまいます。
<追加で質問したいこと1>
「1 days, 12:25:00 」を
「24:00(1 days)+ 12:00 + 0:25 =合計 36:25」で
<求めたい値>36.41
に変換できる方法を探しています。
<追加で質問したいこと2>
minute_total.total_seconds()/60/60 を使って
「36.41」の 形で取得することができました。
ありがとうございます。追加で、
「36:25」または、「7 days, 12:25:00 」の時間の形を
「HH:mm」に変換する方法を探しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/12 01:04