# attendance-rules-calculation > 勤怠の集計ロジック(労働時間、休憩控除、遅刻早退、残業、端数処理)を仕様化し、実装・テスト可能な形に落とす時に使う。 - Author: fcf-koga - Repository: kk0ga/employee-time-attendance - Version: 20260120135051 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/kk0ga/employee-time-attendance - Web: https://mule.run/skillshub/@@kk0ga/employee-time-attendance~attendance-rules-calculation:20260120135051 --- --- name: attendance-rules-calculation description: 勤怠の集計ロジック(労働時間、休憩控除、遅刻早退、残業、端数処理)を仕様化し、実装・テスト可能な形に落とす時に使う。 license: MIT --- # Attendance Rules & Calculation Skill ## 目的 勤怠の「ルール」を曖昧なまま実装しないために、**仕様(ルール表)→ 入出力 → 例外 → テストケース**まで落とし込む。 ## 必須アウトプット 1. ルール一覧(表) 2. 計算の入出力(TypeScriptの型イメージ) 3. 代表ケースの期待値(最低10ケース) 4. “未確定”の論点リスト(決めないと実装できない点を明確化) ## 進め方 1. **時間の正規化** - 保存は ISO 8601 / UTC(またはタイムゾーン付き)で統一 - 表示・集計は Asia/Tokyo(JST) 2. **日次集計の基本式** - 総拘束 = 退勤 - 出勤 - 休憩合計 = Σ(休憩終了 - 休憩開始) - 実働 = 総拘束 - 休憩合計 3. **端数処理** - 切り捨て/切り上げ/四捨五入 - 単位(1分/5分/15分) - “出勤時刻の丸め”と“実働の丸め”は別物。混同しない 4. **月次集計** - Σ(日次実働), Σ(残業), Σ(深夜), Σ(欠勤) など - 締め日(例:月末)と対象期間を明示 5. **例外** - 日またぎ勤務(夜勤) - 休憩の重複/欠落 - 手入力修正(監査ログ必要か) 6. **テスト** - “仕様例”をそのままユニットテストにする(スナップショットも可) - 境界値:00:00跨ぎ、月跨ぎ、1分差、休憩無し、複数休憩 ## 依頼例 - 「丸めルールを 15分単位にしたい。仕様とテストケース作って」 - 「日またぎ勤務をどう扱うべき?実装方針も含めて整理して」