Difference between two given times - GeeksforGeeks

16 Dec, 2021
Given two times in string “HH:MM” format. Here ‘H’ shows hours and ‘M’ shows minutes. You have to find the difference in the same string format between these two strings. But both given strings should follow these cases. 1) Time 1 will be less than or equal to time2 2) Hours will be possible from 0 to 23. 3) Minutes will be possible from 0 to 59Examples:  
Input : s1 = "14:00";
        s2 = "16:45";
Output : result = "2:45"

Input : s1 = "1:04"
        s2 = "13:05"
Output : result = "12:01"
 
The idea is to first remove colon. After removing colon, hour difference can be computed using simple mathematics.  
C++
Python3
Javascript
// C++ program to find difference between two// given times.#include <bits/stdc++.h>using namespace std; // remove ':' and convert it into an integerint removeColon(string s){    if (s.size() == 4)        s.replace(1, 1, "");         if (s.size() == 5)        s.replace(2, 1, "");         return stoi(s);} // Main function which finds differencestring diff(string s1, string s2){     // change string (eg. 2:21 --> 221, 00:23 --> 23)    int time1 = removeColon(s1);    int time2 = removeColon(s2);      // difference between hours    int hourDiff = time2 / 100 - time1 / 100 - 1;     // difference between minutes    int minDiff = time2 % 100 + (60 - time1 % 100);     if (minDiff >= 60) {        hourDiff++;        minDiff = minDiff - 60;    }     // convert answer again in string with ':'      string res = to_string(hourDiff) + ':' + to_string(minDiff);    return res;} // Driver program to test above functionsint main(){    string s1 = "14:00";    string s2 = "16:45";    cout << diff(s1, s2) << endl;    return 0;}
# Python 3 program to find difference between two# given times. # Remove ':' and convert it into an integerdef removeColon(s):         if (len(s) == 4):        s = s[:1] + s[2:]         if (len(s) == 5):        s = s[:2] + s[3:]         return int(s) # Main function which finds differencedef diff(s1, s2):         # Change string    # (eg. 2:21 --> 221, 00:23 --> 23)    time1 = removeColon(s1)    time2 = removeColon(s2)     # Difference between hours    hourDiff = time2 // 100 - time1 // 100 - 1;     # Difference between minutes    minDiff = time2 % 100 + (60 - time1 % 100)     if (minDiff >= 60):        hourDiff += 1        minDiff = minDiff - 60     # Convert answer again in string with ':'    res = str(hourDiff) + ':' + str(minDiff)         return res # Driver codes1 = "14:00"s2 = "16:45" print(diff(s1, s2)) # This code is contributed by ApurvaRaj
<script>// JavaScript program to find difference between two// given times. // remove ':' and convert it into an integerfunction removeColon( s){    if (s.length == 4)        s= s.replace(":", "");         if (s.length == 5)        s= s.replace(":", "");         return parseInt(s);} // Main function which finds differencefunction diff( s1,  s2){     // change string (eg. 2:21 --> 221, 00:23 --> 23)     time1 = removeColon(s1);         time2 = removeColon(s2);          // difference between hours     hourDiff = parseInt(time2 / 100 - time1 / 100 - 1);     // difference between minutes     minDiff = parseInt(time2 % 100 + (60 - time1 % 100));     if (minDiff >= 60) {        hourDiff++;        minDiff = minDiff - 60;    }      // convert answer again in string with ':'    res = (hourDiff).toString() + ':' + (minDiff).toString();    return res;} // Driver program to test above functions    s1 = "14:00";    s2 = "16:45";    console.log(diff(s1, s2));     // This code is contributed by ukasp.</script>
Output:  
2:45
This article is contributed by Harshit Agrawal. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
ApurvaRaj
ukasp
date-time-program
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Merge two sorted arrays
Program to find GCD or HCF of two numbers
Prime Numbers
Modulo Operator (%) in C/C++ with Examples
Sieve of Eratosthenes
Program for Decimal to Binary Conversion
Find all factors of a natural number | Set 1
Program to find sum of elements in a given array
Modulo 10^9+7 (1000000007)
The Knight's tour problem | Backtracking-1