Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "EnvSub", в содержании - "Math Commands" - "EnvSub (-=, --)", v1.0.47.06.

Ник переводчика: Archangel.

EnvSub

Устанавливает переменную как разность себя минус указанное значение (может также вычитать значения дат). Равносильно: Переменная -= Значение.

EnvSub, Var, Value [, TimeUnits]
Var -= Value [, TimeUnits]
Var--

Параметры

Var Название переменной для работы.
Value Любое целое число, число с плавающей точкой или выражение. Выражения не поддерживаются, когда используется TimeUnits.
TimeUnits Если этот параметр существует, он заставляет команду вычесть значение из переменной, обрабатывая переменную как дату в формате YYYYMMDDHH24MISS. TimeUnits может быть указан как Seconds, Minutes, Hours или Days (или только первым символом любого из этих значений). Если Value будет пустым, то оно примет текущее значение времени. Так же, если переменная Var будет пустой, будет использоваться текущее значение времени.

Примечание переводчика, элементы формата YYYYMMDDHH24MISS:
MM - Месяц, 2 цифры (01-12)
DD - День месяца, 2 цифры (01-31)
HH24 - Час в 24-часовом формате, 2 цифры (00-23)
MI - Минуты, 2 цифры (00-59)
SS - Секунды, 2 цифры (00-59)


Результат всегда округляется в меньшую сторону к самому близкому целому числу. К примеру, если различие между двумя датами составит 1.999 дня, то результатом будет 1 день. Если необходима более высокая точность, укажите TimeUnits как Hours, Minutes или Seconds и разделите результат на 24.0, 1440.0, или 86400.0.

Если Var или Value содержат некорректное значение даты или год до 1601, то Var будет пустой, для выявления проблемы.

Встроенная переменная A_Now содержит текущее локальное время в формате YYYYMMDDHH24MISS.

Чтобы точно определить время, прошедшее между двумя событиями, используйте встроенную переменную A_TickCount, это обеспечит точность до миллисекунды.

Чтобы добавить или вычесть определенное число секунд, минут, часов или дней из даты, используйте EnvAdd (вычитание достигается прибавлением отрицательных чисел).

Примечания

Эта команда эквивалентна "стенографическому" стилю: Переменная -= Значение.

Переменная может быть увеличена или уменьшена на 1 при использовании Переменная++, Переменная--, ++Переменная, или --Переменная.

Если Var или Value - пустое или не начинается с числа, то для успешного вычисления они рассматриваются как 0 (кроме случаев использования внутри выражения и кроме тех случаев, когда используется параметр TimeUnits).

Если Var или Value содержит десятичную точку, то результатом будет число с плавающей запятой, в формате, установленном командой SetFormat.

Пример

EnvSub, MyCount, 2
MyCount -= 2 ; Эквивалентно способу выше
var1 = 20050126
var2 = 20040126
EnvSub, var1, %var2%, days
MsgBox, %var1% ; Результатом будет 366 дней, т.к. 2004 - високосный год.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.