プログラムの起動開始時刻と終了時刻をミリ秒で取得した後日時で表示するメモ
※注: 筆者脳筋につきゴリゴリやる
elapsed_time.js
let start_time = new Date();
// Do something...
let elapsed_time = Date.now() - start_time;
let ms=elapsed_time % 1000, // ミリ秒
s = elapsed_time % 60000 / 1000 | 0, // 秒
m = elapsed_time % 3600000 / 60000 | 0, // 分
h = elapsed_time % 86400000 / 3600000 | 0, // 時
d = elapsed_time / 86400000 | 0; // 日
console.log('起動時間'+(d?d+'日':'')+(h?h+'時間':'')+(m?m+'分':'')+s+'秒'+ms);
- 軽く解説
- 1秒は1000ミリ秒
- 1分は60000ミリ秒
- 1時間は3600000ミリ秒
- 1日は86400000ミリ秒
- 0とORをとることによって小数点以下が消える。
- 三項演算子はカッコでくくらないと文字列と合わせてくれない。
- テスト環境はNode.js
2020/6/17 19時追記
-
@rfc828 さんにコメント欄でご指摘いただきました。私の脳筋コードと違いとてもスタイリッシュで好みだったので紹介させていただきます!ありがとうございます!
-
日・時・分・秒の変数計算のところです。
stylish.js
let t = elapsed_time,
ms = t % 1000,
s = ~~(t /= 1000) % 60,
m = ~~(t /= 60) % 60,
h = ~~(t /= 60) % 24,
d = ~~(t /= 24);
~~
を付けることによって小数点以下を切り捨てることができるのですね。勉強不足でした。カッコ内で一時変数に順次代入していくことで、ミリ秒→秒→分→時→日の変換がとても分かりやすいと思いました。
私が気がついていない誤字・脱字、それは違うよボケェ!というところあれば私としても是非直したいので教えてください。