以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
132. 时钟的时针和分针的角度

解题思路:

1.将小时和分钟分别转化为在时钟面板上的位置。

2.计算时针和分针在表盘上的角度。

3.两个角度的较小者即为答案。

详细实现及注释见代码:

function angle(time) {
  // 将时间字符串分割成数组
  const [hour, minute] = time.split(':').map(Number);
  // 计算时针和分针在钟面上的位置,hourPosition为0-11,minutePosition为0-59
  const hourPosition = (hour % 12 + minute / 60) * 30;
  const minutePosition = minute * 6;
  // 计算时针和分针在钟面上的角度,angle在0-360度之间
  let angle = Math.abs(hourPosition - minutePosition);
  if (angle > 180) {
    // 如果角度大于180度,那么对应的角度是从另一个方向算的
    angle = 360 - angle;
  }
  // 返回四舍五入的结果
  return Math.round(angle);
}

测试代码:

console.log(angle('12:00')); // 0
console.log(angle('23:30')); // 165
console.log(angle('01:15')); // 52
console.log(angle('09:45')); // 22