编写c++程序,当用户输入两个时刻(采用24小时制,精确到秒)之后,输出这两个时刻的时间差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写c++程序,当用户输入两个时刻(采用24小时制,精确到秒)之后,输出这两个时刻的时间差相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <cmath>
using namespace std;
class Time

private:
    int h,m,s;
public:
    Time(int h1,int m1,int s1)
    
        h=h1;m=m1;s=s1;
    
    friend int text(Time &t1,Time &t2);
;
int text(Time &t1,Time &t2)

    int l1;
    l1=abs((t1.h-t2.h)*60*60+(t1.m-t2.m)*60+t1.s-t2.s);
    return l1;

int main()

    int h1,m1,s1,h2,m2,s2;
    while(cin>>h1>>m1>>s1>>h2>>m2>>s2)
    
        Time t1(h1,m1,s1);
        Time t2(h2,m2,s2);
        cout<<h1<<":"<<m1<<":"<<s1<<"-"<<h2<<":"<<m2<<":"<<s2<<"="<<text(t1,t2)<<endl;
    
    return 0;

//试着运行一下吧!


参考技术A

CTime t1(2014, 9, 6, 0, 0, 0);

 CTime t2(1999, 3, 20, 22, 14, 44);

 CTimeSpan ts = t1 - t2;

 CString s = ts.Format(_T("days: %D, hours: %H, mins: %M, secs: %S\\n"));

 _tprintf_s(s);

[PTA]7-7 12-24小时制

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。

输入样例:

21:11

输出样例:

9:11 PM
  • 提交结果:

在这里插入图片描述

  • 源码:
#include<stdio.h>
int main(void)
{
	int hour, minute;

	scanf("%d:%d", &hour, &minute);

	if (hour >= 0 && hour < 12)
	{
		printf("%d:%d AM\\n", hour, minute);
	}
	else if (hour == 12)
	{
		printf("%d:%d PM\\n", hour, minute);
	}
	else
	{
		printf("%d:%d PM\\n", hour % 12, minute);
	}

	return 0;
}

以上是关于编写c++程序,当用户输入两个时刻(采用24小时制,精确到秒)之后,输出这两个时刻的时间差的主要内容,如果未能解决你的问题,请参考以下文章

7-7 12-24小时制(15 分)

[PTA]7-7 12-24小时制

正则表达式匹配12小时24小时制时间

当用户的设备在 iOS 中设置为 24 小时制时,如何将包含“am/pm”的字符串转换为 NSDate?

Centos修改时间为24小时制

Centos修改时间为24小时制