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

  • 时间:2020-09-13 14:33:25
  • 分类:网络文摘
  • 阅读:140 次

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) —

推荐阅读:
食用水果时应该注意的一些问题  男人不能常喝豆浆的传言荒谬至极  健康饮食:哪些人不宜食用豆制品?  饮食保健:如何补充膳食纤维合适?  饮食养生:营养价值较高的九种食物  哪些蔬菜在高温下会释放出有毒物质  胶带绑蔬菜存隐患 部分超市仍使用  八种营养价值很高的“难吃”食物  健康养生:胡萝卜怎么食用才更营养  初秋多吃些薯类食物可清肠排毒抗衰 
评论列表
添加评论