Time Difference between given times in HH:MM:SS format - GeeksforGeeks

20 Dec, 2021
Given 2 times ‘st‘ and ‘et‘ in HH: MM: SS format. The task is to print the time difference between st and et in HH:MM: SS format 
Examples:
Input: st = 13:50:45, et = 14:55:50Output: 01:05:05Explanation: The time gap is 1 hour 5 minutes and 5 seconds.
Input: st = 12:00:00, et = 24:00:00Output: 12:00:00Explanation: The time gap is of 12 hours.
Approach: The task can be solved by converting both the given times in ‘seconds‘ format & then find the absolute difference between the two. Then convert this absolute difference into HH:MM: SS formatBelow is the implementation of the above approach:
C++
Java
Python3
C#
Javascript
// C++ program for the above approach#include <bits/stdc++.h>using namespace std; class Solution {public:    // Function to find the time difference    long long int getTimeInSeconds(string str)    {         vector<int> curr_time;        istringstream ss(str);        string token;         while (getline(ss, token, ':')) {             curr_time.push_back(stoi(token));        }         long long int t = curr_time[0] * 60 * 60                          + curr_time[1] * 60                          + curr_time[2];         return t;    }     // Function to convert seconds back to hh::mm:ss    // format    string convertSecToTime(long long int t)    {        int hours = t / 3600;        string hh = hours < 10 ? "0" + to_string(hours)                               : to_string(hours);        int min = (t % 3600) / 60;        string mm = min < 10 ? "0" + to_string(min)                             : to_string(min);        int sec = ((t % 3600) % 60);        string ss = sec < 10 ? "0" + to_string(sec)                             : to_string(sec);        string ans = hh + ":" + mm + ":" + ss;        return ans;    }     // Function to find the time gap    string timeGap(string st, string et)    {         long long int t1 = getTimeInSeconds(st);        long long int t2 = getTimeInSeconds(et);         long long int time_diff            = (t1 - t2 < 0) ? t2 - t1 : t1 - t2;         return convertSecToTime(time_diff);    }}; // Driver Codeint main(){     string st = "13:50:45", et = "14:55:50";    Solution ob;    cout << ob.timeGap(st, et) << "\n";     return 0;}
// Java program for the above approachclass GFG {     // Function to find the time difference    static int getTimeInSeconds(String str) {         String[] curr_time = str.split(":");        int t = Integer.parseInt(curr_time[0]) * 60 * 60 + Integer.parseInt(curr_time[1]) * 60                + Integer.parseInt(curr_time[2]);         return t;    }     // Function to convert seconds back to hh::mm:ss    // format    static String convertSecToTime(int t) {        int hours = t / 3600;        String hh = hours < 10 ? "0" + Integer.toString(hours)                : Integer.toString(hours);        int min = (t % 3600) / 60;        String mm = min < 10 ? "0" + Integer.toString(min)                : Integer.toString(min);        int sec = ((t % 3600) % 60);        String ss = sec < 10 ? "0" + Integer.toString(sec)                : Integer.toString(sec);        String ans = hh + ":" + mm + ":" + ss;        return ans;    }     // Function to find the time gap    static String timeGap(String st, String et) {         int t1 = getTimeInSeconds(st);        int t2 = getTimeInSeconds(et);         int time_diff = (t1 - t2 < 0) ? t2 - t1 : t1 - t2;         return convertSecToTime(time_diff);    }     // Driver Code    public static void main(String args[]) {         String st = "13:50:45", et = "14:55:50";        System.out.println(timeGap(st, et));    }} // This code is contributed by saurabh_jaiswal.
# Python 3 program for the above approach # Function to find the time differencedef getTimeInSeconds(str):     curr_time = str.split(':')     t = (int(curr_time[0]) * 60 * 60         + int(curr_time[1]) * 60         + int(curr_time[2]))     return t # Function to convert seconds back to hh::mm:ss# formatdef convertSecToTime(t):     hours = t // 3600    if hours < 10:        hh = "0" + str(hours)    else:        hh = str(hours)    min = (t % 3600) // 60    if min < 10:        mm = "0" + str(min)    else:        mm = str(min)    sec = ((t % 3600) % 60)    if sec < 10:        ss = "0" + str(sec)    else:        ss = str(sec)    ans = hh + ":" + mm + ":" + ss    return ans # Function to find the time gapdef timeGap(st,  et):     t1 = getTimeInSeconds(st)    t2 = getTimeInSeconds(et)     if (t1 - t2 < 0):        time_diff = t2 - t1    else:        time_diff = t1 - t2     return convertSecToTime(time_diff) # Driver Codeif __name__ == "__main__":     st = "13:50:45"    et = "14:55:50"     print(timeGap(st, et))     # This code is contributed by ukasp.
// C# program for the above approachusing System;using System.Collections.Generic;public class GFG {     // Function to find the time difference    static int getTimeInSeconds(String str) {         String[] curr_time = str.Split(':');        int t = Int32.Parse(curr_time[0]) * 60 * 60 + Int32.Parse(curr_time[1]) * 60                + Int32.Parse(curr_time[2]);         return t;    }     // Function to convert seconds back to hh::mm:ss    // format    static String convertSecToTime(int t) {        int hours = t / 3600;        String hh = hours < 10 ? "0" + hours.ToString()                : hours.ToString();        int min = (t % 3600) / 60;        String mm = min < 10 ? "0" + min.ToString()                : min.ToString();        int sec = ((t % 3600) % 60);        String ss = sec < 10 ? "0" + sec.ToString()                : sec.ToString();        String ans = hh + ":" + mm + ":" + ss;        return ans;    }     // Function to find the time gap    static String timeGap(String st, String et) {         int t1 = getTimeInSeconds(st);        int t2 = getTimeInSeconds(et);         int time_diff = (t1 - t2 < 0) ? t2 - t1 : t1 - t2;         return convertSecToTime(time_diff);    }     // Driver Code    public static void Main(String []args) {         String st = "13:50:45", et = "14:55:50";        Console.WriteLine(timeGap(st, et));    }} // This code is contributed by shikhasingrajput
<script>       // JavaScript code for the above approach        // Function to find the time difference       function getTimeInSeconds(str) {            let curr_time = [];            curr_time = str.split(':')           for (let i = 0; i < curr_time.length; i++) {               curr_time[i] = parseInt(curr_time[i]);           }            let t = curr_time[0] * 60 * 60               + curr_time[1] * 60               + curr_time[2];            return t;       }        // Function to convert seconds back to hh::mm:ss       // format       function convertSecToTime(t) {           let hours = Math.floor(t / 3600);           let hh = hours < 10 ? "0" + (hours).toString()               : (hours).toString();           let min = Math.floor((t % 3600) / 60);           let mm = min < 10 ? "0" + (min).toString()               : (min).toString();           let sec = ((t % 3600) % 60);           let ss = sec < 10 ? "0" + (sec).toString()               : (sec).toString();           let ans = hh + ":" + mm + ":" + ss;           return ans;       }        // Function to find the time gap       function timeGap(st, et) {            let t1 = getTimeInSeconds(st);           let t2 = getTimeInSeconds(et);            let time_diff               = (t1 - t2 < 0) ? t2 - t1 : t1 - t2;            return convertSecToTime(time_diff);       }        // Driver Code       let st = "13:50:45", et = "14:55:50";        document.write(timeGap(st, et) + '<br>');  // This code is contributed by Potta Lokesh   </script>
01:05:05
Time complexity: O(1)Auxiliary Space: O(1)
lokeshpotta20
ukasp
_saurabh_jaiswal
shikhasingrajput
Mathematical
Strings
Strings
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Modular multiplicative inverse
Fizz Buzz Implementation
Generate all permutation of a set in Python
Check if a number is Palindrome
Write a program to reverse an array or string
Reverse a string in Java
Longest Common Subsequence | DP-4
Check for Balanced Brackets in an expression (well-formedness) using Stack
Python program to check if a string is palindrome or not