当前位置:   article > 正文

按键精灵手机助手计算时间差_按键精灵时间函数

按键精灵时间函数

这两天在用按键精灵手机助手写游戏脚本,需要计算时间差,先要获取两次时间,用系统自带的time()函数可以得到系统时间,不过得到的时间是秒数,需要转化一下

time()函数得到的是从1970年1月1日 8:00:00至今所经过的秒数

 

可以用DateTime.Format函数将Time()转为正常的时间格式

既然很容易就得到秒数,将两个时间相减就可以得到时间差了。

如果按键精灵手机助手每次获取电脑时间都很准确,我今天就不用写这篇文章了。我在运行游戏脚本时总是出错,检查之后才发现原因是获取的时间有问题

我电脑时间明明是16:17,怎么打印出来是9点

我把时间手动改为15:20点,显示还是9点

 由于这个time()函数获取的时间不稳定,所以我决定用GetNetworkTime()函数,获取网络时间,然后计算时差。

获取时间容易,计算时间差难。因为按键精灵手机助手没有类似TimeDiff的函数,这一点希望按键精灵能改一下。于是我自己写代码计算时间差,代码可直接复制去使用。只要输入两个时间就行了,如果手动输入时间,必须为字符串,格式为"yyyy-mm-dd HH:MM:SS"

 有闫年也可以正常计算出来

 把秒换算成时分秒就简单了,这里就不写了

【总结】

1、可以有系统自带的time()函数获取系统时间,然后相减,得到时间差。这个方法时不时会出错

2、用下面我写的代码,可以手动输入时间,也可以获取网络时间,如果是手动输入时间,一定要注意格式

  1. Dim t1,t2
  2. //获取网络时间
  3. //t1 = GetNetworkTime()
  4. //自定义时间必须为字符串,格式为"yyyy-mm-dd HH:MM:SS"
  5. t1 = "2024-02-28 00:00:00"
  6. //Delay 5000
  7. //t2 = GetNetworkTime()//获取网络时间
  8. t2 = "2024-03-01 00:00:00"
  9. TracePrint "时间差为",ShiJianCha(t1,t2),"秒"
  10. Function ShiJianCha(time_1,time_2)
  11. Dim time_3, year_0, year_1, year_2, mon, mon1, mon2, mon3, day_1, day_2, day_3, yue1, yue2, ri1, ri2
  12. Dim hour_1, hour_2, hour_3, miniute_1, miniute_2, miniute_3, sec_1, sec_2, sec_3, TotalDays
  13. Dim ddd = 0
  14. //提取时间1的年月日时分秒
  15. TracePrint "time_1 =",time_1
  16. year_1 = Left(time_1, 4)+0
  17. mon1 = Mid(time_1, 6, 2)+0
  18. day_1 = Mid(time_1, 9, 2)+0
  19. hour_1 = Mid(time_1, 12, 2)+0
  20. miniute_1 = Mid(time_1, 15, 2)+0
  21. sec_1 = Mid(time_1, 18, 2)+0
  22. //提取时间2的年月日时分秒
  23. TracePrint "time_2=",time_2
  24. year_2 = Left(time_2, 4)+0
  25. mon2 = Mid(time_2, 6, 2)+0
  26. day_2 = Mid(time_2, 9, 2)+0
  27. hour_2 = Mid(time_2, 12, 2)+0
  28. miniute_2 = Mid(time_2, 15, 2)+0
  29. sec_2 = Mid(time_2, 18, 2)+0
  30. //计算秒数差
  31. If sec_2 - sec_1 >= 0 Then
  32. sec_3 = sec_2 - sec_1
  33. Else
  34. sec_3 = sec_2 - sec_1 + 60
  35. miniute_2 = miniute_2 - 1
  36. If miniute_2 < 0 Then
  37. miniute_2 = 59
  38. hour_2=hour_2-1
  39. End If
  40. End If
  41. //计算分钟数差
  42. If miniute_2 - miniute_1 >= 0 Then
  43. miniute_3 = miniute_2 - miniute_1
  44. Else
  45. miniute_3 = miniute_2 - miniute_1 + 60
  46. hour_2 = hour_2 - 1
  47. If hour_2 < 0 Then
  48. hour_2 = 23
  49. day_2 = day_2 - 1
  50. End If
  51. End If
  52. //计算小时数差
  53. If hour_2 - hour_1 >= 0 Then
  54. hour_3 = hour_2 - hour_1
  55. Else
  56. hour_3 = hour_2 - hour_1 + 24
  57. day_2 = day_2 - 1
  58. If day_2 = 0 Then
  59. mon2 = mon2 - 1
  60. TotalDays = TotalDays - 1
  61. If mon2 <>0 Then
  62. day_2 = MeiYueTianShu(mon2,year_2)
  63. Else
  64. mon2 = 12
  65. day_2 = 31
  66. year_2 = year_2 - 1
  67. End If
  68. End If
  69. End If
  70. //计算天数差
  71. For year_0 = year_1 To year_2
  72. If year_0 = year_1 Then
  73. yue1 = mon1
  74. If year_1 = year_2 Then
  75. yue2 = mon2
  76. Else
  77. yue2 = 12
  78. End If
  79. ElseIf year_0 = year_2
  80. If year_1 = year_2 Then
  81. yue1 = mon1
  82. Else
  83. yue1 = 1
  84. End If
  85. yue2 = mon2
  86. Else
  87. yue1 = 1
  88. yue2 = 12
  89. End If
  90. For mon = yue1 To yue2
  91. If year_0 = year_1 and mon = mon1 Then
  92. ri1 = day_1
  93. If mon1 = mon2 Then
  94. ri2 = day_2
  95. Else
  96. ri2 =MeiYueTianShu(mon,year_0)
  97. End If
  98. ElseIf year_0 = year_2 And mon = mon2 Then
  99. If mon1 = mon2 Then
  100. ri1 =day_1
  101. Else
  102. ri1 = 1
  103. End If
  104. ri2 = day_2
  105. Else
  106. ri1 = 1
  107. ri2 = MeiYueTianShu(mon,year_0)
  108. End If
  109. For ri = ri1 To ri2
  110. ddd = ddd + 1
  111. Next
  112. Next
  113. Next
  114. TotalDays = ddd - 1
  115. ShiJianCha = ((TotalDays* 24 + hour_3) * 60 + miniute_3) * 60 + sec_3
  116. End Function
  117. Function MeiYueTianShu(mon,year_0)
  118. If mon = 4 or mon = 6 or mon = 9 or mon = 11 Then
  119. MeiYueTianShu = 30
  120. ElseIf mon = 2 Then
  121. If RunNian(year_0) Then
  122. MeiYueTianShu = 29
  123. Else
  124. MeiYueTianShu = 28
  125. End If
  126. Else
  127. MeiYueTianShu = 31
  128. End If
  129. End Function
  130. Function RunNian(yyyy)
  131. If yyyy Mod 400 = 0 Then
  132. RunNian = True
  133. Else
  134. If yyyy Mod 4 = 0 And yyyy / 100 <> Int(yyyy / 100) Then
  135. RunNian = True
  136. Else
  137. RunNian = False
  138. End If
  139. End If
  140. End Function

 把附件放在按键精灵手机助手里面的Plugin文件夹里,在使用之前导入一下,格式如下:
Dim t1,t2
Import "SC.lua"
t1 = GetNetworkTime()        //获取网络时间
//自定义时间必须为字符串,格式为"yyyy-mm-dd HH:MM:SS"
t2 = "2024-03-01 02:18:20"
TracePrint SC.ShiJianCha(t1,t2)

 附件下载地址:按键精灵手机助手计算时间差-VB文档类资源-CSDN下载

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号