OJ练习14(C语言):时间间隔

该程序接收两个24小时制时间点作为输入,计算它们之间的时间间隔,并以小时:分钟:秒的格式输出。如果第一个时间点在第二个之后,程序会正确处理时间差。代码使用C语言编写,将时间转换为秒进行计算。

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

一、题目

Description:

从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。

Input:

输入包括两行。第一行为时间点1。第二行为时间点2。

Output:

以“小时:分钟:秒”的格式输出时间间隔。格式参看输入输出。

Sample Input:

12:01:12
13:09:43

Sample Output:

1:08:31

Hint:

注意:本题并没有说时间点1肯定先于时间点2。


二、代码

#include<stdio.h>
int main()
{
	/*24小时制*/
	int h1, m1, s1, h2, m2, s2;
	scanf("%d:%d:%d", &h1, &m1, &s1);
	scanf("%d:%d:%d", &h2, &m2, &s2);
	/*直接换成秒来计算*/
	int h = 0, m = 0, s = 0;
	int T1 = 0, T2 = 0;
	T1 = h1 * 3600 + m1 * 60 + s1;
	T2 = h2 * 3600 + m2 * 60 + s2;
	int T = 0;
	if (T1 > T2)
	{
		T = T1 - T2;	
	}
	else
	{
		T = T2 - T1;
	}

	h = T / 3600;
	m = (T - h * 3600) / 60;
	s = T - h * 3600 - m * 60;

	/*输出格式控制*/
	if (m < 10 && s>=10)
	{
		printf("%d:0%d:%d", h, m, s);
	}
	else if (m >= 10 && s < 10)
	{
		printf("%d:%d:0%d", h, m, s);
	}
	else if (m < 10 && s < 10)
	{
		printf("%d:0%d:0%d", h, m, s);
	}
	else
		printf("%d:%d:%d", h, m, s);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值