题目

请计算出时钟的时针和分针的角度(两个角度的较小者)。时间以HH:mm的格式传入。
示例:

  • angle(‘12:00’) // 0
  • angle(‘23:30’) // 165

    思路

  • 每分钟6度

  • 每小时30度
    1. const angle = (str) => {
    2. let arr = str.split(":")
    3. arr = arr.map(item => Number(item))
    4. // 每分钟6度
    5. const minus = arr[1] * 6
    6. // 对12取余数,防止12点整
    7. // 每小时30度
    8. // (小时 + 30分钟转换成小时) * 小时度数
    9. const hourAngle = (arr[0] % 12 + arr[1] / 60) * 30
    10. const diff = Math.abs(hourAngle - minus)
    11. return Math.min(diff, 360 - diff)
    12. }
    13. console.log(angle('12:15'))