浙江大学PTA C语言-实验9 结构程序设计 7-2 时间换算


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;
}
上一篇:c#-.Net-一天中的时间


下一篇:MySQL使用时间作为判断条件