编写程序,计算两个时刻之间的时差,要求如下:
1.定义时间结构体,分别用整数存储小时、分和秒;
2.定义函数sub(), 计算并返回两个时间结构体之间的时间差(假定两个时刻的差小于24小时);
输入样例:
16:30:30
17:20:20
输出样例:
00:49:50
代码如下:
#include<stdio.h>
#include<math.h>
struct clock//定义时间结构体,成员为时、分、秒
{
int hour,minute,second;
};
struct clock sub(struct clock *p1, struct clock *p2)//结构体函数
{
struct clock t;//创建一个结构体变量
int s1,s2;//总秒数
int st;//相差的秒数
s1 = (p1 -> hour) * 60 * 60 + (p1 -> minute) * 60 + (p1 -> second); //计算总共的秒数
s2 = (p2 -> hour) * 60 * 60 + (p2 -> minute) * 60 + (p2 -> second);
st = abs(s1 - s2);//计算相差的秒数
t.hour = st / (60 * 60);//计算小时
st %= (60 * 60);//计算除去小时外的秒数
t.minute = st / 60;//计算分钟
st %= 60;//计算除去分钟外的秒数
t.second = st;
return t;//返回改变后的结构体
};
int main()
{
struct clock clock1,clock2,clock3;
scanf("%d:%d:%d",&clock1.hour,&clock1.minute,&clock1.second);//输入时刻1
scanf("%d:%d:%d",&clock2.hour,&clock2.minute,&clock2.second);//输入时刻2
clock3=sub(&clock1, &clock2);//调用函数计算时差
printf("%02d:%02d:%02d", clock3.hour, clock3.minute, clock3.second);//打印时差
return 0;
}