Увеличение даты с помощью AutoHotkey - PullRequest
1 голос
/ 19 июня 2019

Я ищу способ установить произвольную дату, и каждый раз, когда я нажимаю клавишу, она печатает послезавтра (завтра).

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 голосов
/ 19 июня 2019

FormatTime ожидает ввода любой даты / времени в формате "ГГГГММДД ..." .Поскольку то, что вы присвоили jDate , не соответствует этому критерию, оно предполагает, что оно недействительно и использует сегодняшнюю дату.Чтобы заставить его работать так, как вы ожидаете, просто измените ваш jDate ввод.

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

Обратите внимание на пару вещей: (1) global в этом контексте не требуется;(2) Я бы рекомендовал избавиться от привычки присваивать переменные с помощью компаратора = (вместо этого используйте оператор присваивания :=).Это работает только по унаследованным причинам, но порождает больше путаницы, чем стоит.В контексте, который вы используете, кавычки должны быть удалены.

...