#定时任务# 模仿Windows任务计划管理器之指定星期在第几个执行
By
圣地
at 2021-09-14 • 2人收藏 • 943人看过
import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=959;bottom=591)
mainForm.add()
/*}}*/
import console;
import win.taskScheduler;
var taskScheduler = win.taskScheduler(mainForm);
taskScheduler.start()
/*
一个月中的某周X最多会出现有5个最少出现4个
*/
//取本月最后一天日期
var getDays = function(yyyymm){
if(type(yyyymm)!="string") error("应指定文本型参数",2)
var tm = ..time( yyyymm )
var tm2 = tm.addmonth(1)
var days = tm2.addday(-1).day
return days;
};
//今天是不是最后的一个星期X
var isLastWeek = function(now){
if(!now) now = ..time()
if ( now.day + 7 > getDays(now.year+"-"+now.month)) {
return true;
}else {
return false;
}
};
//指定日期是本月中的第几周
var weekOfMonth = function(now){
if(!now) now = ..time()
if(isLastWeek(now)) return "last";
var day = now.day
var ret = math.ceil(day / 7)
return ret;
}
//创建任务
var task = taskScheduler.create("任务",function( arguments ){
if( table.find({1,2,3,"last"}, weekOfMonth(/*指定时间测试 time("2021-09-28")*/ ) ) ){
console.log("我是某时间段任务,我被触发了"++tostring(time()))
}
} , "参数")
//设置任务触发时间
task.time = {
dayofweek={1,2}
second = {5,15,25,35,45,55}
}
mainForm.show();
return win.loopMessage();
1 个回复 | 最后更新于 2021-09-14
登录后方可回帖
感谢分享,关注后续用