Clock Angle Problem: Given time in hh:mm format in 24-hour notation, calculate the shorter angle between the hour and minute hand in an analog clock.

For example,

Input:  5:30
Output: 15°
 
 
Input:  21:00
Output: 90°
 
 
Input:  12:00
Output:
 
Please note that hh:60 should be considered as (hh+1):0

Practice this problem

The idea is to consider the rate of change of the angle in degrees per minute. The hour hand of a 12–hour analog clock turns 360° in 12 hours, and the minute hand rotates through 360° in 60 minutes. So, we can calculate the angle in degrees of the hour hand minute hand separately and return their difference using the following formula:

Degree(hh) = H×(360/12) + (M×360)/(12×60)
Degree(mm) = M×(360/60)

Here, H is the hour, and M is the minutes past the hour. The angle should be in degrees and measured clockwise from the 12 o’clock position of the clock. If the angle is greater than 180°, take its difference with 360.

 
Following is the C++, Java, and Python program that demonstrates it:

C++


Download  Run Code

Output:

15

Java


Download  Run Code

Output:

15

Python


Download  Run Code

Output:

15

References: Clock Angle Problem – Wikipedia