计算时间差程序

貌似是超级复杂的算法……

#include<stdio.h>
void main()
{
int h1,m1,h2,m2,timeh,timem;
char e;
   printf("这是一个效率极低,用于计算你不在床上时长的程序,计算时请耐心等候
");
   loop1:printf("输入你的起床时间(hhrr)
");
   scanf("%2d%2d",&h1,&m1);
   printf("输入你的入睡时间(hhrr)
");
   scanf("%2d%2d",&h2,&m2);
   getchar();
   if((h1>24)||(h2>24)||(m1>59)||(m2>59))
{
      printf("请问你使用的是地球上的时间吗?
再来一次吧

");
   goto loop1;
}
   if(m1<=m2)
{
   if(h1<=h2)
       timeh=h2-h1;
       timem=m2-m1;
   if(h1>h2)
       timeh=h2-h1+24;
}
   else
{
      timem=m2-m1+60;
      if(h1<h2)
      timeh=h2-h1-1;
      if(h1>=h2)
      timeh=h2-h1+23;
}
   printf("你不在床上的时长为%d小时%d分钟

",timeh,timem);
   printf("输入y再算一次,输入n退出
");
   scanf("%c",&e);
   switch(e)
{
       case 'y':goto loop1;
       case 'n':printf("感谢使用
");break;
}
}
原文地址:https://www.cnblogs.com/fishegg/p/4020924.html