3

我有一个需要两个变量的方法:

  • 当前时间
  • 分钟

方法很简单。用户输入两个值,第一个是字符串,例如。'23:01' 第二个是整数,例如50。所以该方法通过将两者相加来计算新时间,因此新时间应该是23:51。我让它工作,但是当时间变成 24:01 + 60 时,它变成了 25:01,这是一个不正确的时间。我如何简单地使用python中的时间方法来添加时间?到目前为止,这是我的代码,它引发了一个错误

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' 参数格式化为格式为 %H:%M 的日期时间对象,称为 base_time
第 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))

物联网早点离开你的工作试试这个

于 2012-11-16T13:50:23.423 回答