In this HackerRank Time Conversion problem solution given a time in 12-hour AM/PM format, convert it to military (24-hour) time.
Note: – 12:00:00AM on a 12-hour clock is 00:00:00 on a 24-hour clock.
– 12:00:00PM on a 12-hour clock is 12:00:00 on a 24-hour clock.
Example
s = ’12:01:00PM’
Return ’12:01:00′.
s = ’12:01:00AM’
Return ’00:01:00′.
Function Description
Complete the timeConversion function in the editor below. It should return a new string representing the input time in 24 hour format.
timeConversion has the following parameter(s):
string s: a time in 24 hour format
Returns
string: the time in 24 hour format
Input Format
A single string s that represents a time in 12-hour clock format (i.e.:hh:mm:ssAM or hh:mm:ssPM).
Constraints
All input times are valid
Problem solution in Python.
#!/bin/python3 import os import sys # # Complete the timeConversion function below. # def timeConversion(s): if s[-2:] == "AM" and s[:2] == "12": return "00" + s[2:-2] elif s[-2:] == "AM": return s[:-2] elif s[-2:] == "PM" and s[:2] == "12": return s[:-2] else: ans = int(s[:2]) + 12 return str(str(ans) + s[2:8]) if __name__ == '__main__': f = open(os.environ['OUTPUT_PATH'], 'w') s = input() result = timeConversion(s) f.write(str(result) + 'n') f.close()
Problem solution in Java.
import java.io.*; import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String dt = sc.next(); char ap = dt.charAt(dt.length() - 2); dt = dt.substring(0, dt.length() - 2); if (ap == 'A') { int hh = Integer.parseInt(dt.substring(0, 2)); if (hh == 12) hh = 0; String s = Integer.toString(hh); if (s.length() == 1) { s = "0" + s; } System.out.println(s + dt.substring(2, dt.length())); } else { int hh = Integer.parseInt(dt.substring(0, 2)); if (hh != 12) hh += 12; String s = Integer.toString(hh); if (s.length() == 1) { s = "0" + s; } System.out.println(hh + dt.substring(2, dt.length())); } } }
Problem solution in C++ programming.
#include <cstdio> #include <iostream> #include <vector> using namespace std; using std::vector; void solve(){ int hour, minute, second; char c1, c2; scanf("%d:%d:%d%c%c", &hour, &minute, &second, &c1, &c2); // printf("%dn%dn%dn%cn%c", hour, minute, second, c1, c2); hour = hour % 12; if (c1 == 'P'){ hour = hour + 12; } printf("%02d:%02d:%02dn", hour, minute, second); return; } int main(){ solve(); return 0; }
Problem solution in C programming.
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main() { char t[10]; scanf("%s", t); if(t[8] == 'P') { if(t[0] != '1' || t[1] != '2') { t[0]++; t[1]+=2; } } else { if(t[0] == '1' && t[1] == '2') { t[0] = '0'; t[1] = '0'; } } t[8] = ''; printf("%sn", t); return 0; }
Problem solution in JavaScript programming.
function processData(input) { input = input.split(':'); var hours = parseInt(input[0]); var timeFrame = input[2].slice(2); var seconds = input[2].slice(0,2); if ((timeFrame === 'PM') && (hours !== 12)) { hours += 12; } if ((hours === 12) && (timeFrame === 'AM')) { hours = '00'; } else if (hours < 10) { hours = '0' + hours.toString(); } else { hours = hours.toString(); } console.log([hours, input[1], seconds].join(':')); }; process.stdin.resume(); process.stdin.setEncoding("ascii"); _input = ""; process.stdin.on("data", function (input) { _input += input; }); process.stdin.on("end", function () { processData(_input); });
public static String timeConversion(String s) {
String ampm = s.substring(s.length()-2, s.length()-1);
StringBuffer sb = new StringBuffer(s.substring(0, s.length()-2));
int start = Integer.parseInt(s.substring(0, 2));
if(s.contains("P")){
String sb1 = start == 12 ? "12": ""+(start+12);
sb.replace(0, 2, "" +sb1);
System.out.println(sb);
} else {
String sb1 = start == 12 ? "00": start > 9? ""+start: "0" +start;
sb.replace(0, 2, "" +sb1);
System.out.println(sb);
}
return sb.toString();
}
}
In the C program it doesnot give the required output incase of 2 pm
n = input().replace("PM", ":PM").replace("AM", ":AM").split(":")
if n[-1] == "PM":
if n[0] != "12":
n[0] = str(int(n[0]) + 12)
else:
if n[0] == "12":
n[0] = "00"
del n[3]
time = ":".join(n)
print(time)