#t31. 时间计算问题

时间计算问题

时间计算问题

题目描述

有时候人们用四位数字表示一个时间,比如 11061106 表示 1111 点零 66 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 55 点 3030 分表示为 530530;00 点 3030 分表示为 030030。注意,第二个数字表示的分钟数可能超过 6060,也可能是负数。

输入格式

输入在一行中给出 22 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 55 点 3030 分表示为 530530;00 点 3030 分表示为 030030。流逝的分钟数可能超过 6060,也可能是负数。

输出格式

输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

样例输入

1120 110

样例输出

1310

数据范围

  • 起始时间是一个合法的四位数字表示的时间(小时在 00 到 2323 之间,分钟在 00 到 5959 之间)。
  • 流逝的分钟数 mm 满足 −1440<m<1440-1440 < m < 1440。
  • 题目保证起始时间和终止时间在同一天内。

提示

  • 四位时间 t 用 /100 和 %100 拆成小时和分钟。流逝的分钟数可能是负数。
  • 统一换算成「总分钟」做加减,再换回去,是最不容易错的路。
  • 输出有个坑:0 点 30 分 要输出 030——分钟不足两位要补前导零,查查 setw(2) << setfill('0')(只补分钟)。
  • 拿样例检验:1120 110 → 1310。