7-2 时间换算 (15分)
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。
输入格式:
输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。
输出格式:
输出在一行中给出hh:mm:ss格式的结果时间。
输入样例:
11:59:40
30
输出样例:
12:00:10
作者
C课程组
单位
浙江大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<stdio.h>
#define HOUR_TO_SECOND 3600
#define MINUTE_TO_SECOND 60
struct time{
int hour;
int minute;
int second;
};
int main(void)
{
struct time now,after;
scanf("%d:%d:%d",&now.hour,&now.minute,&now.second);
int n;
scanf("%d",&n);
int now_sumsecond=now.hour*HOUR_TO_SECOND+now.minute*MINUTE_TO_SECOND+now.second;
int after_sumsecond=now_sumsecond+n;
after.hour=after_sumsecond/HOUR_TO_SECOND;
after.minute=(after_sumsecond-HOUR_TO_SECOND*after.hour)/MINUTE_TO_SECOND;
after.second=after_sumsecond%MINUTE_TO_SECOND;
if(after.hour>=24)
after.hour%=24;
if(after.hour>=0&&after.hour<10)
printf("0");
if(after.minute<10&&after.second<10)
printf("%d:0%d:0%d",after.hour,after.minute,after.second);
else if(after.minute>=10&&after.second<10)
printf("%d:%d:0%d",after.hour,after.minute,after.second);
else if(after.minute<10&&after.second>=10)
printf("%d:0%d:%d",after.hour,after.minute,after.second);
else
printf("%d:%d:%d",after.hour,after.minute,after.second);
return 0;
}