将 24 小时制时间(如军用时间)转换为 12 小时制(钟面)时间似乎是使用模运算符的理想场所,但我无法找出将 0 映射到 12 的纯数学方法(所以有小时 1 到 12,而不是 0 到 11)。我能想到的最好的是(在 Ruby 中)
modHour = militaryHour % 12
if modHour == 0
clockHour = 12
else
clockHour = modHour
end
或者,
hours = [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
clockHour = hours[ militaryHour % 12 ]
似乎必须有某种方法可以在数学上完成这种转变,但我无法弄清楚。