时间结构体和时间差计算

9 篇文章 0 订阅

编写程序,计算两个时刻之间的时差,要求如下:

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;
}

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值