Related Articles

# Distance traveled by Hour and Minute hand in given Time interval

• Last Updated : 31 May, 2020

Given two numbers H and M which denotes the length of the hour and minute hand and two time intervals(say T1 & T2) in form of HH:MM, the task is to find the distance travelled by hour hand and minute hand between time T1 and T2.

Examples:

Input: H = 5, M = 7, T1 = “1:30”, T2 = “10:50”
Output:
Distance travelled by minute hand: 410.50144006906635
Distance travelled by hour hand: 24.434609527920614

Input: H = 4, M = 5, T1 = “1:30”, T2 = “10:50”
Output:
Distance travelled by minute hand: 293.21531433504737
Distance travelled by hour hand: 19.54768762233649

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

1. Find the difference between the two time intervals T1 and T2 by using the approach discussed in this article.
2. Change the time duration obtained above into minutes as:
Total Minutes = hours * 60 + minutes

3. Since minute hand covers one rotation in 60 minutes therefore, number of rotations covered by minute hand(say rm) is given by 4. Since hour hand covers one rotation in 60*12 = 720 minutes therefore, number of rotations covered by hour hand(say rh) is given by 5. The total distance traverse by the hour hand is given by 6. The total distance traverse by the minute hand is given by Below is the implementation of the above approach:

## Python

 # Python program for the above approach  import math   # Function to remove ':' and convert# it into an integer def removeColon(s):     if (len(s) == 4):        s = s[:1]+s[2:]          if (len(s) == 5):         s = s[:2]+s[3:]          return int(s)  # function which find the difference# between time intervaldef diff(s1, s2):          # Change string as 2:21 to 221    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  # Function for finding the distance travelled # by minute hand and hour handdef disTravel(T1, T2, M, H):          # Find the duration between these time    dur = diff(T1, T2)          # Remove colom from the dur and     # convert in int    s = removeColon(dur)      # Convert the time in to minute     # hour * 60 + min     totalMinute =(s//100)*60 + s % 100      # Count min hand rotation    rm = totalMinute / 60;      # Count hour hand rotation    rh = totalMinute / 720;      # Compute distance traveled by min hand    minuteDistance = rm * 2* math.pi * M;      # Compute distance traveled by hour hand    hourDistance = rh * 2* math.pi * H;          return minuteDistance, hourDistance    # Driver Code  # Given Time IntervalsT1 ="1:30"T2 ="10:50"  # Given hour and minute hand length H = 5M = 7  # Function CallminuteDistance, hourDistance = disTravel(T1, T2, M, H)  # Print the distance traveled by minute# and hour handprint("Distance traveled by minute hand: "      ,minuteDistance)print("Distance traveled by hour hand: "      ,hourDistance )
Output:
Distance traveled by minute hand:  410.50144006906635
Distance traveled by hour hand:  24.434609527920614


Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up