# How to find the Angle between the hour hand and minute hand in C++

In this tutorial, we will learn to get or find the angle between the hour hand and minute hand in C++. Also, we say this problem as analog clock angle problem where we have to find the angle between the hands of a clock at a given time.

For Example:

• Given Input: h = 6:00, m = 60.00
• Output: 180 degree

Now, we will take 12:00  where h = 12 and m = 0 as a reference.

Hence, these are the following steps.

•  Now, we will get the angle between the hour hand and reference time 12:00 whereas time will be in h hours and m minutes.
• Then, we will get the angle between the minute hand and reference time 12:00.
•  Finally, the difference between these two angles is the angle between the minute hand and hour hand.

So, here the question arises, how to get the angle with respect to 12:00?

### How to get the angle with respect to 12:00?

• As we know, the minute hand will move by 360 degrees in 60 minutes or we can say 6 degrees in one minute.
• And the hour hand will move by 360 degrees in 12 hours or we can say 0.5 degrees in one minute.
• According to this, the minute hand will move by (h*60 + m)*6 and hour hand will move by (h*60 + m)*0.5.

You may also like:
Convert 24-hour format to 12-hour format in C++

## Angle between the hour hand and minute hand

Hence, below is the implementation of the above approach.

``` #include<iostream>
#include <bits/stdc++.h>
using namespace std;

//find minimum of two integers
int min(int a, int b)
{
return (a < b)? a:b;

}

int calculateangle(double H, double M)
{
// validate
if (H <0 || M < 0 || H >12 || M > 60)
cout<<"input is wrong ";

if (H == 12)
H = 0;
if (M == 60)
M = 0;

// Calculate the angles
int hourangle = 0.5 * (H * 60 + M);
int minangle = 6 * M;

// Find the difference
int angdiff = abs(hourangle - minangle);

// Return the smaller angle of two possible angles
angdiff = min(360 - angdiff, angdiff);

return angdiff;
}

int main()
{
cout << calculateangle(6, 60) << endl;
cout << calculateangle(7, 30) << endl;
return 0;
}

```

Output Explanation:

```OUTPUT:

180
45```