はじめに
よくプログラム内でみる数値、86400、3600と60*60*24とか。これは、UNIX時間など内部で使用している場合の1日の値だったり、1時間を表します・・
UNIX時間とは、
UNIX時間、UNIX timeはコンピューターシステム上での時刻表現の一種。協定世界時 (UTC) での1970年1月1日午前0時0分0秒(UNIXエポック)から形式的な経過秒数として表される。
UNIXタイムスタンプ変換ツール
以前の記事
https://www.omakase.net/blog/2022/06/unixtime.html
古いOSでは。これが32ビットOSでは2038年1月19日3時14分7秒までしか対応できませんでしたが
64ビットOSで最新のOSでは、2922億7702万4641年まで・・・
1970年1月1日から1秒毎に加算されたトータルの秒数です。
対応表
- | - | 秒 | 分 | 時間 |
---|---|---|---|---|
1秒 | 1 | 1 | - | - |
1分 | 60 | 60 | 1分 | - |
1時間 | 60*60 | 3600 | 60分 | 1時間 |
1日 | 60*60*24 | 86400 | 14400分 | 24時間 |
注意)UNIX時間は便利なのですが、1970年1月1日からなので、例えば、1970以前の日付など、歴史のなんとか資料のシステム構築する場合。使用できないので・・・
特定時刻から7日後となると
特定時刻+60*60*24*7
特定時刻+86400*7
開始日と終了日の差分を求める場合
秒を日・時間・分に変換
結果を小数点以下切り捨てなどで処理してください。
day = 差分の秒 / 86400;
hour =差分の秒 % 86400 / 3600;
min = 差分の秒 % 3600 / 60;
printf("%d日%d時間%d分",day,hour,min);
さいごに
まぁ・・・・その・・・・