时间差值 c语言

 

首先这题我是太垃了,第一个想法就是套if else,没想到好的方法,这是我的笨蛋方法

*#include<stdio.h>
#include<math.h>
int main()
{
	int a, b, c,d,e,f,g;
	scanf_s("%d:%d:%d\n", &a, &b, &c);
	scanf_s("%d:%d:%d", &d, &e, &f);
	if (e - b >= 0 && f - c >= 0)
		printf("%02d:%02d:%02d", (d - a), (e - b), (f - c));
	else
		if (e - b < 0 && f - c >= 0)
		{

			printf("%02d:%02d:%02d", (d - a - 1), (60 - (b - e)), (f - c));
		}
		else
			if (e - b != 0 && f - c < 0)
				printf(" % 02d: % 02d : % 02d", (d - a), (e - b - 1), (60 - (c - f)));
			else
				if (e - b == 0 && f - c < 0)
					printf("%02d:59:%02d", (d - a - 1), (60 - (c - f)));
				return 0;
}

 其实不仅繁琐易错而且最大的问题是,我默认了第一个时间段<第二个时间段的时长,但要是输入13:00:00  12:00:00 就不输出了,所以还要反过来再把所有的变量顺序变一下(简直麻烦死

#include<stdio.h>
int main(){
int a,b,c,t;
scanf("%d:%d:%d\n",&a,&b,&c);
int A,B,C;
scanf("%d:%d:%d",&A,&B,&C);
int z=a*3600+b*60+c;
int x=A*3600+B*60+C;
if(z<x)
 t=x-z;
else
 t=z-x;
 
printf("%d\n",t);
int q=t/3600;
int w=t/60%60;
int e=t%60;
 
 
printf("%02d:%02d:%02d",q,w,e);
 
return 0;
} 
 
————————————————

原文链接:https://blog.csdn.net/huangluping12345/article/details/89330934

能力有限,这是别人的一个好的方法,把两个时间段时长利用变量作为秒数储存起来,先比较大小再进行这个储存变量的改变! 

这也是一个好的思路!

(%02d指的两位字宽,不够两位补0,一开始不知道02,这样的怎么打的....)

%.2d指的是补空格

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值