# [HackerRank] Time Conversion

Problem

Given a time in AM/PM format, convert it to military (24-hour) time.

Input Format

A single string containing a time in 12-hour clock format.

Output Format

Convert and print the given time in 24-hour format.

Sample Input

07:05:45PM

Sample Output

19:05:45

Solution

1. using char[]

import java.io.*;
import java.util.*;

public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
char[] ch = str.toCharArray();
char[] res = Arrays.copyOfRange(ch, 0, 8);

if(ch[8] == 'A' && str.substring(0,2).equals("12")) {
res[0] = '0';
res[1] = '0';
}
else if(ch[8] =='P' && !str.substring(0,2).equals("12")) {
String hour = "" + (Integer.parseInt(str.substring(0,2)) + 12);
char[] h = hour.toCharArray();
res[0] = h[0];
res[1] = h[1];
}
System.out.println(res);
}
}

2. using StringBuilder()

import java.io.*;
import java.util.*;

public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
char[] inChar = str.toCharArray();
StringBuilder sb = new StringBuilder();

if(str.charAt(8) == 'A' && str.substring(0,2).equals("12")) {
sb.append("00");
sb.append(str.substring(2, 8));
}
else if(str.charAt(8) =='P' && !str.substring(0,2).equals("12")) {

String s = "" + (Integer.parseInt(str.substring(0,2)) + 12);
sb.append(s);
sb.append(str.substring(2, 8));
}
else sb.append(str.substring(0, 8));
System.out.println(sb.toString());
}
}
• 本文已收录于以下专栏：

举报原因： 您举报文章：[HackerRank] Time Conversion 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)