js定时脚本。(autojs更方便)

学习制作定时脚本的用途,我非就是方便自己简化生活中一些比较鸡肋的事情。

定时脚本,首先我们要了解一些要使用的一些js方法以及一些知识

定时

  • 特定、一定的时间。

JavaScript 日期输出

默认情况下,JavaScript 将使用浏览器的时区并将日期显示为全文本字符串:

创建 Date 对象

Date 对象由新的 Date() 构造函数创建。

有 4 种方法创建新的日期对象:

new Date()

new Date(year, month, day, hours, minutes, seconds, milliseconds)

new Date(milliseconds)

new Date(date string)

JavaScript 日期获取方法

日期方法允许您获取并设置日期值(年、月、日、时、分、秒、毫秒)

日期获取方法

获取方法用于获取日期的某个部分(来自日期对象的信息)。下面是最常用的方法(以字母顺序排序):

方法               描述

getDate()         以数值返回天(1-31)

getDay()          以数值获取周名(0-6)

getFullYear()     获取四位的年(yyyy)

getHours()          获取小时(0-23)

getMilliseconds() 获取毫秒(0-999)

getMinutes()      获取分(0-59)

getMonth()          获取月(0-11)

getSeconds()      获取秒(0-59)

getTime()         获取时间(从 1970 年 1 月 1 日至今)

举个例子:

计算当前的日期并且显示出来。
var myDate = new Date();
let day =  myDate.getDate();  //对应页面数字
if(day < 30){//这个地方的30也可以换成方法用来获得每个月有多少天
   day = "0"+day
   console.log("当前为:"+day);
}
alert(day)

这就是一个简单的获得当前日期天数的一个脚本。当然也可以获得现在的时间准确到秒的可以自己尝试一下。

定时执行。我们可以有两个思路,一个是以当前时间,一个是设定定时的时间,计算两个时间差然后等待时间差过后执行任务。或者当定时时间和网络时间比对,==,然后执行任务。

以上条文章的布局进行分析。

获得在

你所指定的时间,

使用getText()方法获得上述文本,然后将其转化成你所需要的数据类型。

      然后获取当前时间进行对比,由于时间是变化的,所以我们需要用whlle语句进行判断,当事件为真是结束循环break

如何计算时间差,简单但是比较繁琐,简单的减法。一层一层的递进。主要是if..else...的使用。
function 时间差(a, b, c, h, m, s) {
    while (true) {
        if (s >= c) {
            var f = s - c
            if (m >= b) {
                var e = m - b
                if (h >= a) {
                    var d = h - a
                } else {
                    var d = 24 - a + h
                }
            } else {
                var e = 60 + m - b
                if (h - 1 >= a) {
                    var d = h - 1 - a
                } else {
                    var d = 24 - a + (h - 1)
                }
            }
            break;
        } else {
            var f = 60 + s - c
            if (m - 1 >= b) {
                var e = (m - 1) - b
                if (h >= a) {
                    var d = h - a
                } else {
                    var d = 24 - a + h
                }
            } else {
                var e = 60 + (m - 1) - b
                if (h - 1 >= a) {
                    var d = h - 1 - a
                } else {
                    var d = 24 - a + (h - 1)
                }
            }
            break;
        }
    }
    var 时间差 = d * 60 * 60 * 1000 + e * 60 * 1000 + f * 1000
    sleep(时间差);
}

 


ui.b1.click(function () {7
    threads.start(主程序)
})

function 主任务() {
    while (true) {
        log("我是主任务,我正在执行")
        sleep(1500)
    }
}测试

以上如果有多线程任务,或者是资源正在占用,可以杀死任务开启定时任务结束之后重新开启。

1.sleep进行时间差的等待

2.对比abc hms但是网络有延迟可能存在误差

autojs可以设置任务,执行你所要执行的代码,但是会占内存,要开启无障碍模式。

我现在学校打卡都是通过脚本执行在我设置的时间按时执行。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值