已知每一时刻是否运行,求每日运行总时长

可以拿到每一时刻的运行状态(运行or停止)
求每一天的运行总时长。

假定转换每一时刻状态到每秒记录一次状态,当天的记录count('运行')结果及即运行总时间秒数。

之前采用的方案
方案一:定时器每3秒跑一次,如果就是运行-运行or 运行-停止就加3秒,停止-停止or停止-运行不做处理。每天晚上0点清零记录变量count
方案二:记录上一次的状态 preStatus(运行、停止),上一次运行开始的时间戳preStart, 累计运行时长count。
如果运行-运行不做处理,运行-停止更新preStatus累加时间 count = 当前时间 - preStart + count
停止-停止不做处理, 停止-运行更新 preStart = 当前时间 出现问题对于跨越0点的运行处理的边界问题。
方案三:连续运行时长workTime、状态preStatus、开始运行时间startTime、今日运行时长TodayTime, 每天0点 set TodayTime = 0
停止-停止:不做处理
停止-运行:preStatus = 运行、startTime = 当前时间
运行-运行:不做处理
运行-停止: set workTime = 当前时间 - startTime , if (startTime 是否在今天) TodayTime = workTime + TodayTime :不在今天 TodayTime = 当前时间 - 0点