我需要以整数形式存储时间值,格式为HHMMSS
. 此时间值每秒递增(基本上是自定义时钟)。但是,由于整数自然是从 10 开始的,所以我必须实现一个大而繁琐的逻辑,提取每个数字并检查每分钟 60 秒、每小时 60 分钟和每天 24 小时。我想知道是否有一些聪明的方法可以在没有大量 if/else if 块的情况下做到这一点。
问问题
455 次
2 回答
2
您可以使用模数运算符来挑选单个秒计数器的每个组件:
int totalSeconds;
...
int seconds = totalSeconds % 60;
int minutes = (totalSeconds / 60) % 60;
int hours = (totalSeconds / 3600);
然后你可以只增加一个秒计数器并提取每个组件。
于 2012-10-14T01:51:39.160 回答
1
我的建议是实现一个 CustomClock 类,它可能看起来像:
public class CustomClock {
private int hour;
private int minute;
private int second;
public CustomClock(int hour, int minute, int second) {
this.hour = hour;
// ...
}
public void increment() {
second = second + 1)%60;
if (second == 0) minute = (minute + 1)%60;
if (minute == 0) hour = (hour + 1)%24;
}
}
因此利用 mod 运算符 (%) 来计算任意基数。
于 2012-10-14T01:48:34.117 回答