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

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

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

推荐阅读:
How to Create Your Own Online Community of Bloggers  Social Media Marketing: Paid Ads vs Organic Strategy  Most Common SEO Mistakes Bloggers Make  SQL Inner Join Tutorial with Example: Managers with at Least 5 D  The Image Smoother Algorithm in C++/Java  C++ Algorithm to Remove Outermost Parentheses  How to Be Unpopular in the Coding World?  How to Search in a Binary Search Tree?  How to Determine Sum of Two Square Numbers?  The Repeated String Match Algorithm in Javascript 
评论列表
添加评论