This problem is know as Clock angle problem where we need to find angle between hands of an analog clock at a given time.

Examples:

Input: h = 12:00, m = 30.00 Output: 165 degree Input: h = 3.00, m = 30.00 Output: 75 degree

The idea is to take 12:00 (h = 12, m = 0) as a reference. Following are detailed steps.

**1)** Calculate the angle made by hour hand with respect to 12:00 in h hours and m minutes.

**2)** Calculate the angle made by minute hand with respect to 12:00 in h hours and m minutes.

**3)** The difference between two angles is the angle between two hands.

**How to calculate the two angles with respect to 12:00? **

The minute hand moves 360 degree in 60 minute(or 6 degree in one minute) and hour hand moves 360 degree in 12 hours(or 0.5 degree in 1 minute). In h hours and m minutes, the minute hand would move (h*60 + m)*6 and hour hand would move (h*60 + m)*0.5.

## C/C++

// C program to find angle between hour and minute hands #include <stdio.h> #include <stdlib.h> // Utility function to find minimum of two integers int min(int x, int y) { return (x < y)? x: y; } int calcAngle(double h, double m) { // validate the input if (h <0 || m < 0 || h >12 || m > 60) printf("Wrong input"); if (h == 12) h = 0; if (m == 60) m = 0; // Calculate the angles moved by hour and minute hands // with reference to 12:00 int hour_angle = 0.5 * (h*60 + m); int minute_angle = 6*m; // Find the difference between two angles int angle = abs(hour_angle - minute_angle); // Return the smaller angle of two possible angles angle = min(360-angle, angle); return angle; } // Driver program to test above function int main() { printf("%d n", calcAngle(9, 60)); printf("%d n", calcAngle(3, 30)); return 0; }

## Java

// Java program to find angle between hour and minute hands import java.io.*; class GFG { // Function to calculate the angle static int calcAngle(double h, double m) { // validate the input if (h <0 || m < 0 || h >12 || m > 60) System.out.println("Wrong input"); if (h == 12) h = 0; if (m == 60) m = 0; // Calculate the angles moved by hour and minute hands // with reference to 12:00 int hour_angle = (int)(0.5 * (h*60 + m)); int minute_angle = (int)(6*m); // Find the difference between two angles int angle = Math.abs(hour_angle - minute_angle); // smaller angle of two possible angles angle = Math.min(360-angle, angle); return angle; } // Driver program public static void main (String[] args) { System.out.println(calcAngle(9, 60)+" degree"); System.out.println(calcAngle(3, 30)+" degree"); } } // Contributed by Pramod Kumar

## Python

# Python program to find angle # between hour and minute hands # Function to Calculate angle b/w # hour hand and minute hand def calcAngle(h,m): # validate the input if (h < 0 or m < 0 or h > 12 or m > 60): print('Wrong input') if (h == 12): h = 0 if (m == 60): m = 0 # Calculate the angles moved by # hour and minute hands with # reference to 12:00 hour_angle = 0.5 * (h * 60 + m) minute_angle = 6 * m # Find the difference between two angles angle = abs(hour_angle - minute_angle) # Return the smaller angle of two # possible angles angle = min(360 - angle, angle) return angle # Driver program h = 9 m = 60 print('Angle ', calcAngle(h,m)) # This code is contributed by Danish Raza

## C#

// C# program to find angle between // hour and minute hands using System; class GFG { // Function to calculate the angle static int calcAngle(double h, double m) { // validate the input if (h < 0 || m < 0 || h > 12 || m > 60) Console.Write("Wrong input"); if (h == 12) h = 0; if (m == 60) m = 0; // Calculate the angles moved by hour and // minute hands with reference to 12:00 int hour_angle = (int)(0.5 * (h * 60 + m)); int minute_angle = (int)(6 * m); // Find the difference between two angles int angle = Math.Abs(hour_angle - minute_angle); // smaller angle of two possible angles angle = Math.Min(360 - angle, angle); return angle; } // Driver code public static void Main () { Console.WriteLine(calcAngle(9, 60)); Console.Write(calcAngle(3, 30)); } } // This code is contributed by Nitin Mittal.

Output:

90 75

**Exercise:** Find all times when hour and minute hands get superimposed.

This article is contributed by **Ashish Bansal**. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above