提供済の時間計算ルールしきい値Formulaに開始時間を使用

提供されているFormulaは、開始時刻の日付に応じて日レベルとタイム・カード・レベルで要約されます。個人の勤務日定義から生成されたActualDateまたはRefDateは使用しません。

ここでは、2019年11月11日から17日のタイム・カードのサンプルについて詳細な結果を示します。個人は、11月11日から13日までの月曜日から水曜日の勤務時間をレポートしました。勤務時間が8時間の日次しきい値を超えると、超過勤務が発生します。

曜日 給与時間タイプ 開始時間 停止時間

月曜日から火曜日

11月11日から12日

通常勤務

5:00a

1:00p

6:00p

7:00a

5:00p

3:00a

11月13日(水) 通常勤務 5:00a 7:00a

たとえば、1日に10時間勤務した場合、8時間は標準勤務時間として、2時間は超過勤務として計算されます。しきい値を超えた時間と下回る時間は、StartTimeと超過勤務日の午後5:00から午後5:00で決定されます。提供されているしきい値Formulaによって、個人は11月15日に15時間勤務したことがわかります。これは、3つすべてのエントリがその日に開始するためです。11月11日の3番目のエントリの9時間すべてに対するActualDateは、開始時間の日付と同じです。エントリの開始時間と停止時間は午後5:00から午後5:00の稼働日内であるため、RefDateも同じです。2019-Nov-12の初回入力のActualDateは2019-Nov-11です。開始から2019-Nov-12 03:00の入力停止まで180分未満であるためです。

開始時間 停止時間 メジャー 給与時間タイプ ActualDate RefDate
2019-Nov-11 05:00 2019-Nov-11 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-10
2019-Nov-11 13:00 2019-Nov-11 17:00 4h 通常勤務 2019-Nov-11 2019-Nov-10
2019-Nov-11 18:00 2019-Nov-12 03:00 9h 通常勤務 2019-Nov-11 2019-Nov-11
日次合計: 15h
2019-Nov-12 05:00 2019-Nov-12 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-11
2019-Nov-12 13:00 2019-Nov-12 17:00 4h 通常勤務 2019-Nov-12 2019-Nov-11
2019-Nov-12 18:00 2019-Nov-13 03:00 9h 通常勤務 2019-Nov-12 2019-Nov-12
日次合計: 15h
2019-Nov-13 05:00 2019-Nov-13 07:00 2h 通常勤務 2019-Nov-12 2019-Nov-12
日次合計: 2h
開始時間 停止時間 メジャー 給与時間タイプ ActualDate RefDate
2019-Nov-11 05:00 2019-Nov-11 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-10
2019-Nov-11 13:00 2019-Nov-11 17:00 4h 通常勤務 2019-Nov-11 2019-Nov-10
2019-Nov-11 18:00 2019-Nov-11 20:00 2h 通常勤務 2019-Nov-11 2019-Nov-11
2019-Nov-11 20:00 2019-Nov-12 03:00 7h 超過勤務 2019-Nov-11 2019-Nov-11
2019-Nov-12 05:00 2019-Nov-12 07:00 2h 通常勤務 2019-Nov-11 2019-Nov-11
2019-Nov-12 13:00 2019-Nov-12 17:00 4h 通常勤務 2019-Nov-12 2019-Nov-11
2019-Nov-11 18:00 2019-Nov-11 20:00 2h 通常勤務 2019-Nov-12 2019-Nov-12
2019-Nov-11 20:00 2019-Nov-12 03:00 7h 超過勤務 2019-Nov-12 2019-Nov-12
2019-Nov-13 05:00 2019-Nov-13 07:00 2h 通常勤務 2019-Nov-12 2019-Nov-12

提供されているしきい値FastFormulaの疑似コードを次に示します。

INPUTS ARE 
  HWM_CTXARY_RECORD_POSITIONS,
  HWM_CTXARY_HWM_MEASURE_DAY,
  Measure,  
  StartTime,
  StopTime,

….

wkTotalHrsDay = 0 
nidx = 0
WHILE (nidx < wMaAry ) LOOP (	  
   nidx = nidx + 1	 
   tcMeasure = 0  
   tcMeasureDay = 0
   tcStartTime = nullDate
	
	aiRecPosition   = HWM_CTXARY_RECORD_POSITIONS[nidx] 
	if (MEASURE.exists(nidx) ) then ( tcMeasure  = MEASURE[nidx]   )  
	if (StartTime.exists(nidx) ) then ( tcStartTime  = StartTime [nidx]   )  

if (recPosition = RecPositoinEoDay ) then  ( 
   /* trunc(tcStartTime)   is different last trunc(tcStartTime  )
   wkTotalHrsDay = tcMeasure  
) else (   
   wkTotalHrsDay =  wkTotalHrsDay  + tcMeasure  
)

If  (wkTotalHrsDay	> p threshold (
   /* create overtime …  */
)
…