gpt4 book ai didi

time - 运算符(operator)突然不工作

转载 作者:行者123 更新时间:2023-12-05 00:21:55 26 4
gpt4 key购买 nike

一周前,我编写了这个脚本,它在您登录时启动,然后根据一天中的时间向您打招呼。今天早上它突然突然说:“时间无效”(如果所有其他 elseif 选项与时间不匹配,它就会这样做)。这曾经有效,直到今天。

这是我的代码:

Set objShell = CreateObject("WScript.Shell")
ctime = Time()
usr = objShell.ExpandEnvironmentStrings("%username%")
if ctime > "06:00:00" and ctime < "12:00:00" then
objShell.Popup "Good Morning, " & usr, 5, "", 4096
elseif ctime > "12:00:00" and ctime < "18:00:00" then
objShell.Popup "Good Afternoon, " & usr, 5, "", 4096
elseif ctime > "18:00:00" and ctime < "23:59:59" then
objShell.Popup "Good evening, " & usr, 5, "", 4096
elseif ctime > "00:00:00" and ctime < "06:00:00" then
objShell.Popup "Good night, " & usr, 5, "", 4096
else
objShell.Popup "Invalid time", 5, "", 4096
end if

编辑:看起来它又可以工作了,现在是 10 点钟,但是由于某种原因它在 10 点之前没有工作,我想我的代码中仍然存在错误?

最佳答案

您正在比较时间和字符串数据子类型的值。 Comparison Operators (VBScript) reference 关于它(或关于自动数据子类型转换)有点不清楚;我猜转换时间为带有替代前导零操作的字符串,例如 #09:10:12# 时间转换为 "9:10:12"" 9:10:12" 字符串。因此,通过将时间文字括在数字符号 ( # ) 中来强制使用时间文字进行时间比较,例如 #06:00:00# 而不是 "06:00:00"

但是,您的逻辑仍然存在差距:例如 #06:00:00##12:00:00##18:00:00# 时间与任何 ifelseif 条件都不匹配,并且会给出无效时间输出。

因此,而不是

if ctime > "06:00:00" and ctime < "12:00:00" then

使用
if ctime >= #06:00:00# and ctime < #12:00:00# then

或者
if ctime > #06:00:00# and ctime <= #12:00:00# then

并以类似方式改进所有 elseif

关于time - 运算符(operator)突然不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com