## 要件 1日の最後に軽く振り返りができるレベルの記録がつけられること。 ### やらないこと 時間記録を細かく計測したり、蓄積して分析したりすること。 ## 基本仕様 - タスク1行に対して時間を記録するテキストベース方式を採用 - ==時刻は記載しない== => 時間を記載する ### フォーマット - [ ] 計測を何もしていない状態 - [ ] 計測中のタスク (⏳) - 条件: タスクが `(⏳)` で終わっていること - [ ] 計測停止したタスク (⏲️00:01:23) - 条件: タスクが `(⏲️\d\d:\d\d:\d\d)` で終わっていること - `\d\d:\d\d:\d\d`部分を時間として取得 ## 設計 - コマンドを作成する (Click Timer) - カレントラインがタスクでなければ中断 - カレントラインが`(⏳)`で終わっていたら STOP処理 - `測定中タスクの時間` + `測定時間` で `(⏳)` を `(⏲️\d\d:\d\d:\d\d)` 形式に置換 - `測定時間` の測定終了 - カレントラインが`(⏲️\d\d:\d\d:\d\d)`で終わっていたら START処理 - `\d\d:\d\d:\d\d`部分を`測定中タスクの時間`として保持 - `(⏲️\d\d:\d\d:\d\d)` を `(⏳)` で置換 - `測定時間` の測定開始 - モデル - 測定タスク - プロパティ - name: string - accumulatedSeconds: number - startTime: DateTime - get displayTime(): number - 秒を`HH:mm:dd`形式の文字列で出力 - メソッド - static of(name: string, startTime: DateTime, accumulatedSeconds: number): this - `HH:mm:dd`形式からsecondsへの変換 - calcAccumulatedSeconds(): void - `seconds = (現在日時 - startTime) + seconds`