この計算ツールでできること
このツールは、基準となる時刻から指定した時間だけさかのぼると何時だったかを正確に教えてくれます。現在の「時」と「分」を入力し、さかのぼりたい時間数を打ち込むだけで、過去の時刻を24時間表記と12時間表記(午前・午後)の両方で表示します。さらに、計算結果が深夜0時をまたぐ場合は、何日前にあたるかも合わせて表示します。
使い方
1. 現在の「時」(0〜23)と「分」(0〜59)を入力します。2. さかのぼる時間数を入力します。1.5や2.25のように小数も使えます(15分=0.25時間)。3. 結果を確認しましょう。見出しにHH:MM形式の時刻が表示され、詳細欄には24時間表記の「時」「分」、そしてさかのぼった日数が表示されます。
計算式の仕組み
まず現在時刻を、深夜0時からの経過秒数に変換します。現在の秒数 = 時 × 3600 + 分 × 60。次に、さかのぼる秒数(さかのぼる時間数 × 3600)を差し引き、その結果を86400(1日の秒数)で割った余りを求めます。引き算の結果はマイナスになることがあるため、86400を足してからもう一度余りを取ることで、答えが必ず00:00〜23:59の正しい時刻の範囲に収まるようにしています。また、引き算前の差を86400で割って小数点以下を切り捨てると、何日前にあたるかがわかります。
$$\text{過去の時刻} = \left[\left(\text{時} \times 3600 + \text{分} \times 60\right) - \text{さかのぼる時間数} \times 3600 \right] \bmod 86400$$$$\begin{gathered} t = \Big[\,S - \text{さかのぼる時間数} \times 3600\,\Big] \bmod 86400 \\[1.5em] \text{where}\quad \left\{ \begin{aligned} S &= \text{時} \times 3600 + \text{分} \times 60 \\ \text{過去の時} &= \left\lfloor t / 3600 \right\rfloor \\ \text{過去の分} &= \left\lfloor (t \bmod 3600) / 60 \right\rfloor \end{aligned} \right. \end{gathered}$$
計算例
現在が2時(02:00)で、5時間前が何時だったかを知りたいとします。現在の秒数 = 2 × 3600 = 7200。さかのぼる秒数 = 5 × 3600 = 18000。差 = 7200 − 18000 = −10800。これを補正すると、(−10800 mod 86400 + 86400) mod 86400 = 75600秒 = 21:00(午後9時)、つまり1日前の時刻となります。
$$\text{現在の秒数} = 2 \times 3600 = 7200$$$$\text{さかのぼる秒数} = 5 \times 3600 = 18000$$$$\text{差} = 7200 - 18000 = -10800$$$$(-10800 \bmod 86400 + 86400) \bmod 86400 = 75600\ \text{秒} = 21{:}00$$よくある質問
24時間より長くさかのぼれますか? はい、可能です。「何日前」の欄に、結果が何日分さかのぼったかが表示されます。
実際の現在時刻を使うのですか? いいえ。基準となる時刻はご自身で入力するため、結果は何度でも同じになり、タイムゾーンの影響も受けません。
1時間未満の端数も使えますか? はい。30分なら0.5、15分なら0.25というように小数で入力してください。