工作时长的计算1111111111

//变量名称修改,符合通用,根据传入的状态时长属性ID获取该状态当前时长

def tempDuration = $recent("open_hour")?:0

//获取当前设备运行状态

def runningStatus = $recent("device_status")?:0

//获取当前时间戳(单位毫秒)

long dataTimestamp = __timestamp__.longValue()

//获取上次上云时间戳(单位毫秒)

long lastStamp = $lastStamp()?:dataTimestamp

//判断隔天

java.text.SimpleDateFormat sf = new java.text.SimpleDateFormat("yyyy-MM-dd")

String nowTimeStr = sf.format(new java.util.Date(dataTimestamp))

String lastTimeStr = sf.format(new java.util.Date(lastStamp))

if(nowTimeStr <=> lastTimeStr){

tempDuration = 0

java.text.SimpleDateFormat sdf_convert = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

lastStamp = (sdf_convert.parse(nowTimeStr + " " + "00:00:00")).getTime()

}

//判断隔天结束

//根据传入的状态时长修改条件(0 停机,1 作业,2 待机,非0 开机)

if(runningStatus != 0){

//状态时长与转化成小时的时间片段累加

tempDuration = tempDuration + (dataTimestamp - lastStamp)/1000/3600

}

//返回时长

return tempDuration

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容