使用自动快捷键增加日期

时间:2019-06-19 04:19:28

标签: date scripting autohotkey

我正在寻找一种设置任意日期的方法,每按一次键,它将在第二天(明天)打印一次。

global jDate = "June 1, 1986"
^+z::
    ;Output our date in LongDate format
    FormatTime, TimeString, %jDate%, LongDate
    SendInput, %TimeString%

    ;Increment the date by a single day
    jDate += 1, Days
Return

不幸的是,它会将代码jDate保留为今天的当前日期/时间,而不是我在初始变量分配中指定的过去日期。不知道为什么。增量工作正常,它只是从今天开始而不是从1986年开始递增。

1 个答案:

答案 0 :(得分:0)

FormatTime期望输入的日期/时间在"YYYYMMDD..." format中。由于您分配给 jDate 的条件不符合该条件,因此它假定该条件无效并使用今天的日期。要使其按预期工作,只需修改您的 jDate 输入。

jDate := "19860601" ; 1986 -> YYYY, 06 -> MM, 01 ->DD

有两点需要注意:(1)在这种情况下不需要global; (2)我建议您摆脱使用=比较器(改为使用:=赋值运算符)分配变量的习惯。它仅出于legacy的原因起作用,但产生的混乱比其应有的价值还多。在您使用它的情况下,需要删除引号。