我一直在尝试借助圆圈开发时钟控件。因此,如果圆圈是 360 度,则它是 3 点钟,如果它是 90 度,那么它将是 12 点钟。如果我有圆的角度,我无法弄清楚可以使用什么公式来找到 hh:mm 格式的时间。
例如。
9 点钟是 180 度。 3 点钟是 360 度 12 点是 90 度等等。
最佳答案
可能有更简洁的方法来执行此操作,但这是您需要做的。
- 计算时间的十进制值,使用3 - (1/30) * (angle mod 360)
- 如果结果小于零,则加 12。
- 将整数部分用作小时数,将值 0 替换为 12。
- 取余数(第 1 步计算的小数部分)并乘以 60 转换为分钟。
- 设置小时和分钟的格式,如果小于 10,则用前导零填充,并将它们与冒号组合。
Java 中的示例实现:
public static String convertAngleToTimeString(float angle) {
String time = "";
float decimalValue = 3.0f - (1.0f/30.0f) * (angle % 360);
if (decimalValue < 0)
decimalValue += 12.0f;
int hours = (int)decimalValue;
if (hours == 0)
hours = 12;
time += (hours < 10 ? "0" + hours: hours) + ":";
int minutes = (int)(decimalValue * 60) % 60;
time += minutes < 10 ? "0" + minutes: minutes;
return time;
}
关于math - 将圆的角度转换为以分钟为单位的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056596/