• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 25
发新话题 回复该主题

[教程心得] 【山海教程】【零基础学按键】时间判断与应用 [复制链接]

1#


零基础,轻松学习安卓按键,大家好,我是山海师~~~

在上一篇教程中我们学习了字符串的一些 常用的操作, 那在今天这篇教程中我们就来学习下时间的相关处理命令.时间的处理在脚本中是应用的比较广泛的, 像是活动任务的定时处理, 定时循环等等都需要用到时间命令

>>>>总目录贴入口<<<<


常用的时间命令有: Time, TickCount, DateTime.Format

获取当前时间




命令名称Time
命令功能得到当前系统时间
命令参数
返回值返回值为数值类型,表示当前系统从1970年1月1日至今所经过的秒数


需要注意的是, 这个命令并不是直接返回出当前系统所直观显示的时间, 而是系统从1970年1月1日至今所经过的秒数, 所以得出的值是不能直接用的, 需要使用DateTime插件来转换成所需要的时间格式
范例:
  1. Dim t = time()

  2. TracePrint "当前分钟数为: " & DateTime.Minute(t)
  3. TracePrint "当前年份是: " & DateTime.year(t)
  4. TracePrint "当前月份是: " & DateTime.month(t)
复制代码
DateTime.Minute\DateTime.year\DateTime.month 这些命令是用来把从time()命令里返回的时间转换成指定的时间的命令, 相关的命令还有用来转换成小时\秒数\星期等等, 具体的命令这里就不过多的一一介绍了, 大家可以直接参考下按键的命令帮助文档, 里面有详细的范例


按照指定格式获取时间




这里再单独介绍一个自定义比较强的时间函数, 这个命令可以按照你要求的格式来返回一个时间给你

命令名称DateTime.Format
命令功能按照指定格式输出时间
命令参数fmt:分别用%Y, %m, %d, %H, %M, %S代表年,月,日,时,分,秒
如果不填格式,默认格式为%Y-%m-%d %H:%M:%S
t:为可选参数,可以填写Time()得到的时间。如果不填,则取当前时间
返回值返回根据指定的格式生成的时间


这个命令可以指定时间按照第一个参数设定的格式来生成你想要的时间, 范例:
  1. // 生成时间: 年-月-日
  2. Traceprint DateTime.Format("%Y-%m-%d")
  3. // 生成时间: 年/月/日
  4. Traceprint DateTime.Format("%Y/%m/%d")
  5. // 生成时间: 年/月/日 时:分:秒
  6. Traceprint DateTime.Format("%Y/%m/%d %H:%M:%S")
  7. // 生成时间: xxxx年xx月xx日
  8. TracePrint DateTime.Format("%Y年%m月%d日")
复制代码
这个命令就是把%Y %m之类的特殊符号当成是指定的年月等时间, 然后其他的就按照原来的字符不变进行返回


计算时间差的方法




上面介绍了如何获取系统时间, 那在具体的使用中还需要涉及到定时进行任务, 或者定时循环找图, 超时后退出这样的功能, 这种功能就需要通过TickCount 命令来配合使用了

命令名称TickCount
命令功能获取当前脚本运行时间,单位毫秒
命令参数
返回值返回值为数值类型,脚本运行的时间


使用TickCount 命令来计算时间差
  1. Dim t = TickCount()
  2. For 100
  3. If CmpColorEx("300|500|FFFFFF|123456-102030,305|505|FFFFFF",0.9) = 1 Then
  4. End If
  5. Next
  6. TracePrint "使用多点找色100次, 消耗时间是: " & TickCount()-t
复制代码
利用TickCount 可以精确毫秒的特性, 我们可以用来检测代码运行的时长

实现定时功能
  1. Dim t = TickCount()
  2. Do
  3. If TickCount() - t > 5000 Then
  4. TracePrint "循环时间超过5秒,退出循环"
  5. Exit Do
  6. Else
  7. TracePrint "循环中..."
  8. End If
  9. Loop
复制代码
根据上面的方法, 我们可以进一步应用到找色中, 来实现一个在指定时间内循环等色的操作
  1. Call 循环多点比色("300|500|FFFFFF|123456-102030,305|505|FFFFFF",5)

  2. Function 循环多点比色(mycolor, t)
  3. Dim t1 = TickCount()
  4. Do
  5. If CmpColorEx(mycolor, 0.9) = 1 Then
  6. TracePrint "找到特征啦"
  7. Exit Do
  8. End If
  9. If TickCount() - t1 > t*1000 Then
  10. TracePrint "等待5秒未找到, 退出循环"
  11. Exit Do
  12. End If
  13. Delay 200
  14. Loop
  15. End Function
复制代码


赠人玫瑰手有余香~~~你的一个顺手回复也许就可以让这个帖子给更多的人看到,就能帮助更多的人~~~

    已有2评分我要评分查看所有评分

    本主题由 版主 gljxsd 于 2018/2/7 14:27:19 执行 删除帖子 操作
    2#

    【山海教程】【零基础学按键】时间判断与应用,

    3#


    4#

    山海老师,好榜样

    5#

    最喜欢山海老师的教程,顶一个。

    6#

    22222222222

    7#

    222222222222222222222222222

    没个性不签名
    8#

    看看

    9#

    看看看看看看!!!

    10#


    11#

    正需要,学习中。

    12#

    【山海教程】【零基础学按键】时间判断与应用,

    13#

    山海教程】【零基础学按键】时间判断与应用

    14#

    本主题由 按键工程师 quitout 于 2016/5/17 18:03:27 执行 移动主题 操作

    15#

    感谢老师分享

    16#


    17#

    ooooooooooooooooo

    18#

    dddddddddddddddddddddddddddddd

    19#

    111111111111

    20#

    111111111111111111111

    发新话题 回复该主题