首页 > 试题广场 >

时间转换

[编程题]时间转换
  • 热度指数:3138 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个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
/*
思路:十二小时制:AM中从0-11都是二十四小时制一样 12AM改成00:00:00
十二小时制的PM则需要开始变化,把每个时辰都加上12(时位)
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] str = br.readLine().split(":");
        //分情况讨论
        //①AM且小于12:00:00
        int hour = Integer.parseInt(str[0]);
        char ch = str[2].charAt(2);
        if(hour<12 && ch == 'A'){
            System.out.println(str[0] + ":" + str[1] + ":" + str[2].substring(0,2));
        }else if(hour == 12 && ch == 'A'){
            System.out.println("00" + ":" + str[1] + ":" + str[2].substring(0,2));
        }else if(hour <12 && ch == 'P'){
            hour = hour+12;
            System.out.println(String.valueOf(hour) + ":" + str[1] + ":" + str[2].substring(0,2));
        }else if(hour == 12 && ch == 'P'){
            System.out.println("12" + ":" + str[1] + ":" + str[2].substring(0,2));
        }
    }
}

发表于 2020-05-20 19:32:47 回复(0)