【懒人精灵】在指定的多个时间段里执行任务,不在时间段内就不执行

业务需求

有的任务,必须在指定时间段内执行,可以按照以下方式,来判断当前时间是否在指定的时间范围内。

实现

-- 任务参数表
task = {
    name = '任务:吃饭打卡赚金币',
    slotTime = {
        '06:00-09:00', '11:00-14:00', '17:00-20:00', '21:00-24:00'
    },
}

-- 获取当前时间
function getCurrentTime()
    local currentTime = os.date("*t")  -- 获取当前时间表(table)
    return string.format("%02d:%02d", currentTime.hour, currentTime.min)  -- 返回 "HH:MM" 格式
end

-- 判断当前时间是否在时间段内
function isTimeInSlot(currentTime, slotTime)
    -- 获取开始时间和结束时间
    local startTime, endTime = string.match(slotTime, "(%d%d:%d%d)-(%d%d:%d%d)")

    -- 将时间转换为分钟数,以便于比较
    local function timeToMinutes(timeStr)
        local hour, minute = string.match(timeStr, "(%d%d):(%d%d)")
        return tonumber(hour) * 60 + tonumber(minute)
    end

    -- 当前时间和时间段的转换
    local currentTimeInMinutes = timeToMinutes(currentTime)
    local startTimeInMinutes = timeToMinutes(startTime)
    local endTimeInMinutes = timeToMinutes(endTime)

    -- 判断当前时间是否在时间段内
    return currentTimeInMinutes >= startTimeInMinutes and currentTimeInMinutes <= endTimeInMinutes
end

local currentTime = getCurrentTime()

-- 遍历任务的时间段
for _, slot in ipairs(task.slotTime) do
    if isTimeInSlot(currentTime, slot) then
        -- 如果当前时间在某个时间段内,执行任务
        print("当前时间 (" .. currentTime .. ") 在时间段 " .. slot .. " 内,执行任务:" .. task.name)

        -- 这里可以执行任务的具体代码逻辑
        return
    end
end

-- 如果没有在任何时间段内,跳过任务
print("当前时间 (" .. currentTime .. ") 不在任何有效时间段内,跳过任务:" .. task.name)
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】在指定的多个时间段里执行任务,不在时间段内就不执行

企业级大数据智能营销管理系统

了解详情