以下为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