3

私は2つの変数を取るメソッドを持っています:

  • 現在の時刻

方法はとても簡単です。ユーザーは2つの値を入力します。最初の値は文字列です。'23:01' 2番目は整数(例:50)です。したがって、このメソッドは2つを足し合わせて新しい時刻を計算するため、新しい時刻は23:51になります。私はこれを機能させますが、時間が24:01 + 60になると、25:01になります。これは間違った時間です。Pythonでtimeメソッドを使用して時間を追加するにはどうすればよいですか?これがエラーをスローするこれまでの私のコードです

import time
class timeCalc(object):
    def nextTime(self, time, minutes):
        t = time.split(':')
        mins = int(t[0]) * 60 + int(t[1]) + minutes
        h = str(mins/60)
        m = str(mins%60)
        if len(h) == 1:
            h = '0' + h
        if len(m) == 1:
            m = '0' + m
        nTime = time.strptime(h + ':' + m, "%H:%M")
        print nTime

ts = timeCalc()
ts.nextTime('23:01',60)
4

3 に答える 3

3

その方法で時間パラメータを解析する必要はありません。次のことができます。

Import datetime
class timeCalc(object):
    def nextTime(self, time, minutestoadd):
        base_time = datetime.datetime.strptime(time, "%H:%M")
        minutesobj = datetime.timedelta(minutes = minutestoadd)
        newtime = basetime + minutesobj
        print newtime.time()

4行目:
「time」パラメーターをbase_timeと呼ばれる%H:%Mの形式で日時オブジェクトにフォーマットします。5
行目: minutestoadd
パラメーターを互換性のあるオブジェクト形式に変換して追加します。6行目

両方の日時オブジェクト値の合計
7行目:
結果を23:40:00のような形式で印刷します

于 2012-11-16T14:06:39.960 に答える
1
from datetime import datetime, timedelta

def nextTime(time, minutes):
    return (datetime.strptime(time, '%H:%M') + timedelta(minutes=minutes)).time()

nextTime('23:01', 60)

datetime.time(0, 1)印刷可能な返品:

nextTime('23:01', 60).strftime('%H:%M')

と戻ります00:01

于 2012-11-16T13:45:56.710 に答える
0
time.localtime(currenttime + 45 * 60))

IOTはすぐに仕事を辞めますこれを試してください

于 2012-11-16T13:50:23.423 に答える