小Q系列故事――为什么时光不能倒流

小Q系列故事――为什么时光不能倒流
Time Limit:100MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description


  我以为我会是最坚强的那一个 我还是高估了自己
  我以为你会是最无情的那一个 还是我贬低了自己

  就算不能够在一起 我还是为你担心
  就算你可能听不清 也代表我的心意

  那北极星的眼泪 闪过你曾经的眼角迷离
  那玫瑰花的葬礼 埋葬的却是关于你的回忆

  如果时光可以倒流 我希望不要和你分离
  如果注定分离 我希望不要和你相遇

    ――摘自《小Q失恋日记 》第17卷520页


   这是码农小Q第58次失恋了,也是陷得最深的一次。
   要知道,小Q自从第一次到腾讯公司报到,就被风姿绰约的前台MM彻底迷住了,这1000多个日日夜夜他无时无刻不在憧憬着他们美好的未来。为了能见到MM,他每天早到晚归,甘愿加班,连续3年被评为优秀员工,并且以全公司最快的速度晋级到四级岗位。就在他终于鼓足勇气准备表白的时候,MM却满面春风地送来了一包喜糖......
  现在小Q专门请了年休假治疗情伤,但情绪总不见好转,每天足不出户,眼睛盯着墙上的钟表,反复念叨:“表白要趁早,时光不倒流,表白要趁早,时光不倒流......”
   假设现在已知当前的时间,让时间倒退回若干,你能计算出钟表显示的时间吗?

Input

输入首先包含一个整数N,表示有N组测试用例。
接下来的N行表示N个测试用例,每行包括2个时间HH:MM:SS  hh:mm: ss
HH:MM: SS表示当前的时间,hh:mm: ss表示希望倒退回去的时间。
[Technical Specification]
00<=HH<=11
00<=hh<=99
00<=MM, SS, mm, ss<=59

Output

请计算并输出钟表倒退后显示的时间,要求输出格式为HH:MM: SS(即时分秒均显示2位,不足则补0),每组数据输出占一行。

Sample Input

	
2
11:28:32 02:14:21
05:00:00 96:00:01

Sample Output

	
09:14:11
04:59:59
 
     
AC代码&0s代码:
#include<iostream>
using namespace std;
int main()
{
	int n,h,m,s,hh,mm,ss;
	char t;
	cin >> n;
	while(n--)
	{
		cin >> h >> t >> m >> t >> s;
		/*cout << h << " " << m << " " << s << endl; */
		cin >> hh >> t >> mm >> t >> ss;
		/*cout << hh << " " << mm << " " << ss << endl; */
		h-=hh;
		while(h<0)
			h+=12;
		m-=mm;
		if(m<0)
		{
			m+=60;
			h--;
		}
		s-=ss;
		if(s<0)
		{
			s+=60;m--;
			if(m<0)h--,m+=60;
			if(h<0)h+=12;
		}
		if(h<10)cout << 0 << h <<":" ;
		else
			cout << h << ":";
		if(m<10)cout << 0 << m <<":" ;
		else
			cout << m << ":";
		if(s<10)cout << 0 << s <<endl ;
		else
			cout << s << endl;
	}
	return 0;
}
15s代码:
#include<iostream>
using namespace std;
int main()
{
	int n,h,m,s,hh,mm,ss;
	char t;
	cin >> n;
	while(n--)
	{
		cin >> h >> t >> m >> t >> s;
		cin >> hh >> t >> mm >> t >> ss;
			if(s<ss)
			{
				m--;
				s+=60;
			}
			s=s-ss;
			if(m<mm)
			{
				h--;
				m+=60;
			}
			m=m-mm;
			while (h<hh)
			{
				h+=12;
			}
			h-=hh;
			if(h<10)cout << 0 << h <<":" ;
			else
				cout << h << ":";
			if(m<10)cout << 0 << m <<":" ;
			else
				cout << m << ":";
			if(s<10)cout << 0 << s <<endl ;
			else
				cout << s << endl;
	}
	return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值