View Code of Problem 56

#include<stdio.h>
typedef struct Time{
    int hour,minute,second;
}Time;
/*
	描述时间的结构体
*/
/*
	输入时间函数
*/
void ReadTime(Time *time)
{
    scanf("%d:%d:%d",&time->hour,&time->minute,&time->second);
}
/*
	输出时间函数
*/
void PrintTime(Time *time)
{
    printf("%d:",time->hour);
    if(time->minute<10)
        printf("0");
    printf("%d:",time->minute);
    if(time->second<10)
        printf("0");
    printf("%d",time->second);
}
//计算两个时间只差
void TimeSub(Time *time1,Time *time2,Time *time)
{
    long t1,t2,t;
    t1=time1->hour * 3600 + time1->minute*60 + time1->second;
    t2=time2->hour * 3600 + time2->minute *60 + time2->second;
    t=t1-t2;//将时间转化为秒
    if(t<0)
        t=t*(-1);
    //将秒转化为时间
    time->hour= t/3600;
    time->minute= (t-time->hour*3600)/60;
    time->second= t%60;
}
int main()
{
    Time time1,time2,time;
    ReadTime(&time1);//读时间
    ReadTime(&time2);//读第一个时间
    TimeSub(&time1,&time2,&time);//计算减法
    PrintTime(&time);//返回一个时间
    return 0;
}

Double click to view unformatted code.


Back to problem 56