C语言处理时间的一道题

题目描述

本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。

输入格式:

输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。

输出格式:

输出在一行中给出hh:mm:ss格式的结果时间。

输入样例:

1
2
11:59:40
30

输出样例:

1
12:00:10

AC代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
int main()
{
int h,m,s,n;
scanf("%d:%d:%d",&h,&m,&s);
scanf("%d",&n);


h=n/3600+h;//计算n秒中包含的小时数,并相加
int r=n%3600;//剩余秒数

m=m+r/60;//计算剩余的秒数r中包含的分钟数,并相加

s=s+r%60;//计算剩余的秒数,此时r一定<60,因此不用再r=r%60一次了

if(s>=60)//秒数大于等于60,向分钟进位
{
m+=s/60;
s=s%60;//求真实秒数
}

if(m>=60)//分钟数大于等于60,向小时进位
{
h+=m/60;
m=m%60;//求真实分钟数
}
h=h%24;//求真实小时数

printf("%02d:%02d:%02d",h,m,s);
}
凡希 wechat
喜欢所以热爱,坚持干货分享,欢迎订阅我的微信公众号
呐,请我吃辣条