我有3个
JSpinner
一个小时,一个分钟,一个秒。分钟和秒的最大值为60,最小值为-1,小时的最小值为-1,最大值为24。如果第二个值达到60,它将返回到0,并逐个增加分钟数。小时和分钟一的向下函数和上下函数有类似的行为。这项技术在24小时的导航中运行完美。
但是,我在12小时内遇到了问题。我有一个
JCheckBox
(
amPmCheckBox
)在左侧激活或停用12小时时间。现在,转换为/从12小时的时间也可以完美地工作,所以点击
复选框
不是问题。那里有
JToggleButton
(
amPmToggleButton
)在左边,你看。如果向上(取消选择),则显示AM;如果向下(选择),则显示PM。
现在,问题不在于转换(记住,我说过可以),而在于滚动。当我把旋转器向上滚动几个小时时,它应该从,比方说,11点到12点。但是,我有它,所以
AmpmToggle按钮
每当小时微调器达到某个限制并向后翻转(这很容易检测到)时,就会切换其状态。我只是检查是否
getAlarmHrs() > MAX_ALARM_AMPM_HRS
否则如果
getAlarmHrs() < MIN_HRS
现在,这就是我的问题所在。每个AM/PM周期有12个小时,这是应该有的。但是,他们从上午1点到12点和下午1点到12点。任何知道上午/下午的人都知道这是错误的。
我如何编程以知道何时在AM和PM之间切换?
记住这个闹钟在24小时内工作得非常好。