86400、3600の数値って

らら
らら

はじめに

よくプログラム内でみる数値、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);

さいごに

まぁ・・・・その・・・・

関連記事