求从给定时刻开始过了给定时间后的时刻。
输入
有若干组数据。
每组数据有2行,第一行是给定时刻,可能有两种格式
格式1) 年 月 日 时 分(时是24小时制)
格式2) 月-日-年 时:分 上下午 (时是12小时制,注意没有秒)
第二行是时间增量,也可能有两种格式
格式1) 一个整数,代表多少秒
格式2) 日 时 分
输出
对每组数据,输出给定时刻加上时间增量后的新时刻,24小时制
格式如: 1982-12-10 12:12:28
样例输入
1982 12 1 23 0 737848 1982 12 1 23 15 180 2 18 12-01-1982 1:23 AM 737848
样例输出
1982-12-10 11:57:28 1983-05-31 01:33:00 1982-12-09 14:20:28
错误代码:s没有split(),导致第二个输出时间的days=1,hours=8,而不是days=180
import datetime
s=[]
t=[]
while True:
try:
s.append(input())
except:
break
for i in range(len(s)):
if i%2==0:
if len(s[i].split())==5:
a=datetime.datetime.strptime(s[i],'%Y %m %d %H %M')
else:
a = datetime.datetime.strptime(s[i], '%m-%d-%Y %H:%M %p')
else:
if len(s[i].split())==1:
a+=datetime.timedelta(seconds=int(s[i]))
else:
a+=datetime.timedelta(days=int(s[i][0]),hours=int(s[i][1]),minutes=int(s[i][2]))
t.append(a)
for i in t:
print(i)
修改后的正确代码
import datetime
s=[]
t=[]
while True:
try:
s.append(input())
except:
break
for i in range(len(s)):
if i%2==0:
if len(s[i].split())==5:
a=datetime.datetime.strptime(s[i],'%Y %m %d %H %M')
else:
a = datetime.datetime.strptime(s[i], '%m-%d-%Y %H:%M %p')
else:
ss=s[i].split()
if len(ss)==1:
a+=datetime.timedelta(seconds=int(ss[0]))
else:
a+=datetime.timedelta(days=int(ss[0]),hours=int(ss[1]),minutes=int(ss[2]))
t.append(a)
for i in t:
print(i)