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

By 圣地 at 2021-09-14 • 0人收藏 • 237人看过
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

感谢分享,关注后续用

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

AARDIO语言QQ群:70517368
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
C大Aardio论坛:Aar爱好者论坛
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
赞助商:才仁机械
Loading...