# HackerRank Time Conversion problem solution

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 programming.

```#!/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 Programming.

```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("%d\n%d\n%d\n%c\n%c", hour, minute, second, c1, c2);
hour = hour % 12;
if (c1 == 'P'){
hour = hour + 12;
}
printf("%02d:%02d:%02d\n", 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] = '\0';
printf("%s\n", 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);
});```

1. 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();
}
}

2. In the C program it doesnot give the required output incase of 2 pm

3. 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)