关于时间的计算

博客给出时间计算示例,输入T1为11时50分40秒,T2为12时20分20秒,输出T2与T1的时间差为0时29分40秒,还提及了两种计算方法,但未详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入:T1= 11时:50分:40秒,T2= 12时:20分:20秒

输出:T2-T1= 0时:29分:40秒


#include <iostream>
#include <stdio.h>
using namespace std;
class Data
{
private:
    int hour;
    int minute;
    int second;

public:
    Data(int phour =0,int pminute =0,int psecond =0):hour(phour),minute(pminute),second(psecond) {}
    friend Data operator-(const Data&T1,const Data&T2);
    friend ostream&operator<<(ostream&out,const Data&T);
    void showtime()const;
};
void Data::showtime()const
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
};
Data operator-(const Data&T1,const Data&T2)
{
    int ih, im, is;
    ih = T1.hour-T2.hour;
    im = T1.minute-T2.minute;
    is = T1.second-T2.second;
    if(is < 0)
    {
        is = 60 +is;
        im--;
    }
    if(im < 0)
    {
        im = 60 +im;
        ih--;
    }
    return Data(ih,im,is);
}
ostream & operator<<(ostream&out,const Data&T)
{
    out<<T.hour<<"时"<<":"<<T.minute<<"分"<<":"<<T.second<<"秒"<<endl;
    return out;
}
int main()
{
    Data T1(11,50,40),T2(12,20,20);
    Data T3;
    //T3.showtime();
    cout<<"T1= "<<T1<<endl;
    cout<<"T2= "<<T2<<endl;
    T3=T2-T1;
    cout<<"T2-T1= "<<T3<<endl;
    return 0;
}

方法一:

Data operator-(const Data&T1,const Data&T2)
{
    int ih, im, is, sum_sec;
    sum_sec=(T1.hour*3600+T1.minute*60+T1.second) - (T2.hour*3600+T2.minute*60+T2.second);
    ih = sum_sec/3600;
    im = sum_sec%3600/60;
    is = sum_sec%60;
    return Data(ih,im,is);
}

方法二:

Data operator-(const Data&T1,const Data&T2)
{
    int ih, im, is;
    ih = T1.hour-T2.hour;
    im = T1.minute-T2.minute;
    is = T1.second-T2.second;
if(is < 0)
    {
        is = 60 +is;
        im--;
    }
    if(im < 0)
    {
        im = 60 +im;
        ih--;
    }
    return Data(ih,im,is);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值