#定时任务# 模仿Windows任务计划管理器之指定星期在第几个执行

By 圣地 at 2021-09-14 • 2人收藏 • 807人看过
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
2021-09-14   #1

感谢分享,关注后续用

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...