Appearance
Documentation / @kizami/engine / CoreTime
Interface: CoreTime
Defined in: types.ts:52
コアタイム(フレックスタイム制で「必ず勤務すべき時間帯」。労基法32条の3、任意設定)。
制度上の性質(docs/design/work-systems.md「コアタイム」):
- コアタイムを定めるかどうかは労使協定の任意事項であり、定めなければスーパーフレックス
- コアタイム中の不在は「遅刻・早退」として扱えるが、清算期間の総枠(集計)には影響しない。 フレックスの時間外は清算期間の総枠との差でしか決まらないため(work-systems.md 参照)、 コアタイムを外れても労働時間そのものは1分も増減しない
- よって KIZAMI はコアタイムを 警告としてだけ扱う(auto-break と同じ 「計測と警告のみ、控除しない」— 賃金控除は給与側の責任、docs/design/breaks.md)
表現(判断点):
startMinutes/endMinutesはローカル0時からの分(0〜1440)。ShiftDayと違い 日跨ぎ(endMinutes <= startMinutes)は表現しない — コアタイムは「1日の中の、 全員が居るべき日中の帯」という制度前提であり、夜勤の帯を表す必要がない。 日跨ぎのコアタイムを許すと「その帯はどの勤怠日に属するのか」という (シフト制と違って所定の裏付けが無いまま解かねばならない)問題を抱え込む。 不正な値は apps/api の POST /settings/work-policy が 400 で弾く。エンジン自体は 純関数として意味的な妥当性までは関知しないが、帯として成立しない値 (endMinutes <= startMinutes)は「帯が無い」とみなして警告を出さない(core-time.ts 参照)weekdaysは「コアタイムが適用される曜日」。省略時は月〜金
Properties
endMinutes
endMinutes:
number
Defined in: types.ts:56
ローカル0時からの分(0〜1440)。コアタイム終了。startMinutes より大きいこと
startMinutes
startMinutes:
number
Defined in: types.ts:54
ローカル0時からの分(0〜1440)。コアタイム開始
weekdays?
optionalweekdays?: (0|1|2|3|4|5|6)[]
Defined in: types.ts:67
コアタイムが適用される曜日(0=日曜)。省略時は月〜金(1〜5)。
判断点(2026-08-24): フレックスには monthly_variable の ShiftDay のような 「所定労働日カレンダー」が無く、エンジンが日付から知りうる休みは法定休日だけである。 土曜のような所定休日(法定休日ではない非勤務日)を区別できないまま core_time_absence(不在)を出すと、週休2日の会社では毎週土曜に誤報が出る。 曜日の集合をコアタイム設定自体に持たせることで、追加のカレンダー機構を導入せずに これを防ぐ(実務でもコアタイムは「平日10:00〜15:00」のように曜日とセットで定められる)。