forked from devAmoghS/Python-Interview-Problems-for-Practice
-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculateClockAngle.py
31 lines (23 loc) · 906 Bytes
/
calculateClockAngle.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Find the angle made by the hour hand and the minute
# hand at any given time. Assume it is an analog clock
def calculateAngle(hour, minute):
if hour < 0 or minute < 0 or hour > 12 or minute > 60:
print("Wrong inputs given...")
return
else:
if hour == 12:
hour = 0
if minute == 60:
minute = 0
# hour hand moves 360° in 12 hours i.e.
# 360/12*60 ==> 0.5° every minute
# similarly minute hand moves 360° in 1 hour i.e.
# 360/60 ==> 6° every minute
hour_angle = (hour * 60 + minute) * 0.5
minute_angle = minute * 6
# We take the absolute difference
# and then return the acute angle between the two
difference = abs(hour_angle - minute_angle)
return min(difference, 360 - difference)
input_time = (9, 30)
print("The angle between hour and minute hand is: ", calculateAngle(input_time[0], input_time[1]), '\u00b0')