列表

详情


OR166. 时间转换

描述

给定一个12小时制的时间,请将其转换成24小时制的时间。说明:12小时制的午夜12:00:00AM,对应的24小时制时间为00:00:00。12小时制的中午12:00:00PM,对应的24小时制时间为12:00:00。

输入描述

一个描述12小时制时间的字符串。所有的输入都是合理的,不用考虑输入不合理的情况。

输出描述

一个描述24小时制时间的字符串。

示例1

输入:

08:03:45PM

输出:

20:03:45

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2020-07-08

#include <stdio.h>
#include <string.h>
int main(){
	int a=0,b=0,c=0;
	char t[3];
	scanf("%02d:%02d:%02d%s",&a,&b,&c,t);
	if((strcmp(t,"AM")==0)&&(a==12)){
		a=0;
	}
	else if(strcmp(t,"PM")==0){
		if(a!=12){
			a+=12;
		}
	}
	printf("%02d:%02d:%02d",a,b,c);
	return 0;
} 

C 解法, 执行用时: 2ms, 内存消耗: 304KB, 提交时间: 2022-06-15

//时间转换plus
#include<stdio.h>
int main()
{
	int h, m, s;
	char ss[3];
	scanf("%d:%d:%d%s", &h, &m, &s,ss);
	if ((*ss)=='A')
	{
		if (h == 12)
		{
			h = 0;
		}
		printf("%02d:%02d:%02d", h, m, s);
	}
	else
	{
		if (h == 0)
		{
			h = 12;
		}
		if (h == 12)
		{
			h = 0;
		}
		printf("%02d:%02d:%02d", h + 12, m, s);
	}
	return 0;
}

上一题