Compute the Angle of the Hour and Minute Hand on a Clock

  • Time:2020-09-13 14:33:25
  • Class:Weblog
  • Read:27

Given a time in the format of hour and minute, calculate the angle of the hour and minute hand on a clock.

clock-3-30 Compute the Angle of the Hour and Minute Hand on a Clock algorithms geometry python

Clock 3:30

This was recently asked by Microsoft. This is not a difficult question. We want to make sure that:

  • The time could be in the format 24-hour. For example, 15:30 is the same as 3:30.
  • The hour minute also moves slightly (portion) when minute hand moves.
  • One minute difference has a 6 rad degree – 60 minutes is 360 degree.

Thus, the following Python code should be straigtforward with O(1) constant in both time and space – just pure math calculations.

1
2
3
4
5
6
7
8
9
10
11
def calcAngle(h, m):
  # hour hand gets percentage angle
  h = (h + (m / 60.0)) * 5 % 60
  diff = abs(h - m)
  return int(diff * 6)
 
if __name__ == "__main__":
  print(calcAngle(3, 30))
  # 75
  print(calcAngle(12, 30))
  # 165
def calcAngle(h, m):
  # hour hand gets percentage angle
  h = (h + (m / 60.0)) * 5 % 60
  diff = abs(h - m)
  return int(diff * 6)

if __name__ == "__main__":
  print(calcAngle(3, 30))
  # 75
  print(calcAngle(12, 30))
  # 165

A slightly different solution in C/C++ can be found here: C/C++ Program to Compute the Angle Between Hands of a Clock

–EOF (The Ultimate Computing & Technology Blog) —

Recommend:
China opposes politicization, instrumentalization of counterterr
China approved major projects worth 1.5 trln yuan by end-Novembe
Head coach of Qiongzhong women’s football team thanks Messi, Ini
Opening ceremony of high-level segment of second part of COP15 m
Renhuai-Zunyi Expressway in SW China officially put into full op
A glimpse of headquarters of National Archives of Publications a
Who Xi met during his visit to Saudi Arabia
The bustling vibes in China: Aerial Shanghai after COVID-19 rest
Explore a hidden thousand-year-old ethnic village
Ice harvesting
Share:Facebook Twitter
Comment list
Comment add