**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
and minute hand will move*(h*60+m)*0.5**6*m*

**Code:**

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