このタイム シートには 4 つの「イン」列と 4 つの「アウト」列があり、2 週間の支払い期間の労働時間を計算しています。右側には、1 日の労働時間を計算する列があります (以下のスクリプトを参照)。最も近い15分に丸める必要があります。つまり、
従業員が次の期間に出勤または退勤する場合:
正時「:00」~「:07」分、正時から計算 ":08" から ":22" 分、毎時 1/4 から計算 ":23" から ":37" 分、30 分から計算 ":38" から ":52" 分、正時から 4 分の 3 から計算 正時「:53」~「:60」分、正時から計算
例:
従業員が午前 8:07 に到着したと記録する 8:00 から計算する 従業員が午前 8 時 8 分に到着したと記録する 8 時 15 分から計算する 従業員が午前 8 時 22 分に到着したと記録する 8 時 30 分から計算する 従業員が午前 8 時 37 分に到着したことを記録する 8 時 45 分から計算する 従業員が午前 8 時 53 分に到着したと記録する 9 時から計算する
「勤務時間」列のスクリプト
// compute block 0
var StartInterval = 0
if(HasValue(OUTA1[0]) and HasValue(INA1[0])) then
StartInterval = Time2Num(OUTA1[0].formattedValue, "HH:MM") - Time2Num(INA1[0].formattedValue, "HH:MM")
endif
// compute block 1
var LunchInterval = 0
if(HasValue(OUTA1[1]) and HasValue(INA1[1])) then
LunchInterval = Time2Num(OUTA1[1].formattedValue, "HH:MM") - Time2Num(INA1[1].formattedValue, "HH:MM")
endif
// compute block 2
var EndInterval = 0
if(HasValue(OUTA1[2]) and HasValue(INA1[2])) then
EndInterval = Time2Num(OUTA1[2].formattedValue, "HH:MM") - Time2Num(INA1[2].formattedValue, "HH:MM")
endif
// compute total time in hours from the millisecond value
Round(Sum(StartInterval, LunchInterval, EndInterval) / 3600000,2)