1

このタイム シートには 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)
4

0 に答える 0