一道简单的C++编程,定义时间类,计算两个时间之间相差的间隔。
假如有2个时间t1-1:34:4(即1点34分四秒,下同。),t2-2:31:2,按照题意,两个时间做差后输出所差几小时几分几秒,我现在的大体思路是,先把两个时间换算成秒...
假如有2个时间t1-1:34:4(即1点34分四秒,下同。),t2-2:31:2,
按照题意,两个时间做差后输出所差几小时几分几秒,
我现在的大体思路是,先把两个时间换算成秒,然后做差,然后转换,最后输出一下,但是貌似不知道该如何下手。
我应该怎么来做。 展开
按照题意,两个时间做差后输出所差几小时几分几秒,
我现在的大体思路是,先把两个时间换算成秒,然后做差,然后转换,最后输出一下,但是貌似不知道该如何下手。
我应该怎么来做。 展开
2个回答
展开全部
要不要考虑天数?允许出现今天3点和明天3点这么大的时间差么?其实不用转换成秒,假如同一天两个时间分别为8:20和17:10 直接先用
int a1THour,a1TMin;
int a2THour,a2TMIn;
int deltaTHour;deltaTMin;
a1THour=8;
a1TMin=20;
a2THour=17;
a2TMin=10;
deltaTHour = a2THour-a1THour;
if(a2TMin>a1TMin)
{
deltTMin = a2TMin-a1TMin;
}
else
{ //分钟借1个小时再减
deltTMin =a2TMin+60-a1TMin;
DeltaTHour--;
}
如果有天数,要最先判断天数,思路也一样,小时不够就借一天,就是加24小时再做减法,
希望对你有帮助
int a1THour,a1TMin;
int a2THour,a2TMIn;
int deltaTHour;deltaTMin;
a1THour=8;
a1TMin=20;
a2THour=17;
a2TMin=10;
deltaTHour = a2THour-a1THour;
if(a2TMin>a1TMin)
{
deltTMin = a2TMin-a1TMin;
}
else
{ //分钟借1个小时再减
deltTMin =a2TMin+60-a1TMin;
DeltaTHour--;
}
如果有天数,要最先判断天数,思路也一样,小时不够就借一天,就是加24小时再做减法,
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
class classTime
{
public:
classTime(){h=0,m=0,s=0;}
classTime(int x,int y,int z){h=x,m=y,s=z;}
friend void dTime(classTime &t1,classTime &t2);
friend int transeTime(classTime &t);
private:
int h,m,s;
};
void dTime(classTime &t1,classTime &t2)
{
int delta=transeTime(t2)-transeTime(t1);
int hh,mm,ss;
hh=delta/3600;
mm=delta%3600/60;
ss=delta%3600%60;
cout<<hh<<":"<<mm<<":"<<ss<<endl;
}
int transeTime(classTime &t)
{
return t.h*60*60+t.m*60+t.s;
}
void main()
{
classTime t1(1,34,4);
classTime t2(2,31,2);
dTime(t1,t2);
}
class classTime
{
public:
classTime(){h=0,m=0,s=0;}
classTime(int x,int y,int z){h=x,m=y,s=z;}
friend void dTime(classTime &t1,classTime &t2);
friend int transeTime(classTime &t);
private:
int h,m,s;
};
void dTime(classTime &t1,classTime &t2)
{
int delta=transeTime(t2)-transeTime(t1);
int hh,mm,ss;
hh=delta/3600;
mm=delta%3600/60;
ss=delta%3600%60;
cout<<hh<<":"<<mm<<":"<<ss<<endl;
}
int transeTime(classTime &t)
{
return t.h*60*60+t.m*60+t.s;
}
void main()
{
classTime t1(1,34,4);
classTime t2(2,31,2);
dTime(t1,t2);
}
追问
大哥,能不能用两个类完成,就是类的复合(组合)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询