1

我有这个有四个“In”和四个“Out”列的时间表,并计算了两周工资期内的工作时间。右侧有一列计算当天的工作时间(见下面的脚本)。我需要它四舍五入到最近的一刻钟,即

如果员工在以下时间到达或离开:

小时后的“:00”到“:07”分钟,从整点开始计算
":08" 到 ":22" 小时后的分钟,从小时后的一刻钟开始计算
小时后的“:23”到“:37”分钟,从半小时开始计算
小时后的“:38”到“:52”分钟,从整点四分之三开始计算
整点后的“:53”到“:60”分钟,从整点开始计算

例子:

员工记录他们在上午 8:07 到达的时间 从 8:00 开始计算
员工记录他们在上午 8 点 08 分到达的时间 从 8 点 15 分开始计算
员工记录他们在上午 8 点 22 分到达 从 8 点 30 分开始计算
员工记录他们在上午 8 点 37 分到达的时间 从 8 点 45 分开始计算
员工记录他们在上午 8:53 到达的时间 从 9:00 开始计算

“工作时间”列中的脚本

// 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