Time Conversion HackerRank Solution in C, C++, Java, Python

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:00PM’

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 12 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

Sample Input 0

07:05:45PM

Sample Output 0

19:05:45

Time Conversion HackerRank Solution in C

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {

    /* Enter your code here. Read input from STDIN. Print output to STDOUT */ 
    char timestamp[11] = "\0\0\0\0\0\0\0\0\0\0\0";
    int hr=0;
    
    scanf("%s", timestamp);
    
    if(timestamp[8] == 'P'){
        hr = 10*(timestamp[0]-'0')+(timestamp[1]-'0');
        if(hr < 12) hr += 12;
    }
    else{
        hr = 10*(timestamp[0]-'0')+(timestamp[1]-'0');
        if(hr == 12) hr = 0;
    }
    
    timestamp[0] = hr/10 + '0';
    timestamp[1] = hr%10 + '0';
    timestamp[8] = '\0';
    timestamp[9] = '\0';
    
    printf("%s", timestamp);
    return 0;
}

Time Conversion HackerRank Solution in C++

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    string s;
    string h;
    int hr;
    cin>>s;
    hr = ((s[0]-'0')*10)+(s[1]-'0');
    if(s[8]=='P'&&s[9]=='M'&& hr ==12) cout<<to_string(hr);
    else if(s[8]=='P'&&s[9]=='M') cout<<to_string(hr+12);
    else if(s[8]=='A'&&s[9]=='M'&&hr==12) cout<<"00";
    
    else cout<< s[0]<<s[1];
    
   
    for(int i =2;i<8;i++)
        cout<<s[i];
    cout<<endl;
    return 0;
}

Time Conversion HackerRank Solution in Java

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

   	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine(); //07:05:45PM
        DateFormat inFormat = new SimpleDateFormat( "hh:mm:ssaa");
        DateFormat outFormat = new SimpleDateFormat( "HH:mm:ss");

        Date date = null;
        try {
            date = inFormat.parse(s); 
        }catch (ParseException e ){
            e.printStackTrace();
        }
        if( date != null ){
            String myDate = outFormat.format(date);
            System.out.println(myDate);
        }
    }

}

Time Conversion HackerRank Solution in Python

import re

time = raw_input()
times = re.search(r"(?P<hh>..):(?P<mm>..):(?P<ss>..)(?P<ampm>..)", time)
hour = times.group('hh')

if times.group('ampm') == 'PM':
    if hour == '12':
        hr = '12'
    else:
        hr = str(int(hour) + 12)
else:
    if hour == '12':
        hr = '00'
    else:
        hr = hour

print hr + ':' + times.group('mm') + ':' + times.group('ss')

Time Conversion HackerRank Solution in C#

using System;
using System.Collections.Generic;
using System.IO;
class Solution {
    static void Main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution */
        Console.WriteLine(DateTime.Parse(Console.ReadLine()).ToString("HH:mm:ss"));
    }
}

 

Attempt – Time Conversion HackerRank Challenge

Link: https://www.hackerrank.com/challenges/time-conversion

1 thought on “Time Conversion HackerRank Solution in C, C++, Java, Python”

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

    Reply

Leave a Comment