本来直接用小时减去小时,分钟减去分钟即可,
但是经过调试发现,
如果是3时50分减去4时40分的情况,
小时位会输出负数,
所以每次计算前将其化为分钟进行加减,
输出换成小时即可。
程序源码
#include <stdio.h>
int main()
{ int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
scanf("%d %d", &hour2, &minute2);
int t1 = hour1 * 60 + minute1;
int t2 = hour2 * 60 + minute2;
int t = t2-t1; printf("时间差是%d小时%d分。", t/60, t%60);
return 0;
}
或者添加一个if的判断,如果分钟不够减,则把小时位减一,分钟位加上60
int main()
{
int hour1, minute1;
int hour2, minute2;
scanf("%d %d", &hour1, &minute1);
scanf("%d %d", &hour2, &minute2);
int ih = hour2 - hour1;
int im = minute2 - minute1;
if ( im <0 ) {
im = 60 + im;
ih --;
}
printf("时间差是%d小时%d分。\n", ih, im);
return 0;
}
这样就避免了分钟位不够减的情况