You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在VBS脚本中实现含分钟的10:05-20:30时间范围判断?

解决VBS脚本判断时间范围(含分钟)的问题

你的原代码不仅没处理分钟边界,逻辑上还存在错误——Hour(Now()) >=10 OR Hour(Now()) <20这个条件永远为真,毕竟任何小时数要么≥10要么<20,导致脚本永远输出"Time Range",完全没达到你要的精准判断效果。

要准确识别当前时间是否处于10:05到20:30之间,我们需要分三种场景覆盖所有符合条件的情况:

  • 当小时在11到19之间时,直接判定为在范围内;
  • 当小时是10时,需要分钟数≥5;
  • 当小时是20时,需要分钟数≤30;
  • 其余情况都不属于目标时间范围。

下面是修正后的完整代码:

Dim currentHour, currentMinute
currentHour = Hour(Now())
currentMinute = Minute(Now())

If (currentHour > 10 And currentHour < 20) _
   Or (currentHour = 10 And currentMinute >= 5) _
   Or (currentHour = 20 And currentMinute <= 30) Then
    WScript.Echo "Time Range"
Else
    WScript.Echo "NOT Time Range"
End If

代码细节解释:

  • 先把当前小时和分钟存入变量,避免重复调用Hour(Now())Minute(Now()),让代码更简洁易读;
  • 下划线_是VBS的续行符,用来拆分过长的条件语句,提升可读性;
  • 三个OR连接的条件完整覆盖了所有符合要求的时间区间:
    1. currentHour >10 And currentHour <20:覆盖11:00到19:59的所有时间;
    2. currentHour=10 And currentMinute>=5:精准匹配10:05到10:59的时间段;
    3. currentHour=20 And currentMinute<=30:匹配20:00到20:30的时间段。

这样就能精准判断时间是否在你设定的范围内了!

内容的提问来源于stack exchange,提问作者edwio

火山引擎 最新活动