昔作ったなぁ

まず概念として、
0-5,5-22,22-29,29-46
と4つの区分に分ける。0-5と22-29を分けるのが味噌。一緒にするとややこしくなる
俺は甲時間 乙時間 丙時間 丁時間と名付けていた

入力は3項目じゃなく6項目。
出勤、退勤、甲乙丙丁それぞれいつ休み時間を取ったかわかるようにする

残業代は労働時間の合計-8時間になり、
休日は休日フラグを作り、勤務時間*割増分を別枠で付ける。

で、
21:00〜4:00の場合の考え方は
開始時間が5:00以前なら5:00△開始時間が甲時間(仮)。終了時間が5:00以前なら更に5:00△終了時間を甲時間(仮)から引く。これが甲時間。今回は0
乙時間も似たような感じで、開始時間が5:00~22:00なら22:00△開始時間が乙時間(仮)。終了時間が22:00以前なら更に22:00△終了時間を乙時間(仮)から引く。これが乙時間。今回は1:00
あとは丙時間、丁時間も同じように求める

個人的には関数の方が修正しやすい、見通しも良いで作りやすいと思う

>>192
無能の自己紹介はいらないよぉ