# Clock Angle Problem

Objective: Find the Angle between hour hand and minute hand at the given time.

Example:

```Time : 12:45
Input : hour = 12, Minute = 45
Output : 112.5

Time : 3:30
Input : hour = 3, Minute = 30
Output : 75
```

Approach:

• At 12:00 both hand meet, take it as reference.
• Angle between hand and minute = angle of hour hand ~ angle of minute hand.
• return minimum(angle, 360-angle)
• hour hand moves 360 in 12 hours => 360/12 = 30 degree in one hour or 0.5 degree in 1 min
• Minute hand moves 360 in 60 mins => 360/60 = 6 degree in one min
• So if given time is h hours and m mins, hour hand will move (h*60+m)*0.5 and minute hand will move 6*m

Code:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

 public class AngleHourMinute { public static double angle(int hour, int minute) { if (hour < 0 || minute < 0) { return –1; } if (hour == 12) { hour = 0; } if (minute == 60) { minute = 0; hour += 1; } double hourAngle = (hour * 60 + minute) * 0.5; double minAngle = minute * 6; double bwAngle = Math.abs(hourAngle – minAngle); return Math.min(360 – bwAngle, bwAngle); } public static void main(String[] args) { System.out.println(angle(12, 45)); System.out.println(angle(3, 30)); System.out.println(angle(2, 23)); } }

Output:

```112.5
75.0
66.5

```

This site uses Akismet to reduce spam. Learn how your comment data is processed.