EnvSub

设置变量的值为它自身减去给定的值(还可以比较日期-时间值). 同义于: Var -= Value.

EnvSub, Var, Value , TimeUnits
Var -= Value , TimeUnits
Var--

参数

Var

要运算的变量名.

Value

任何整数, 浮点数或表达式.

TimeUnits

如果使用此参数, 那么此参数指示命令如何从 Var 中减去 Value: 把它们都视为 YYYYMMDDHH24MISS 格式的日期时间戳. TimeUnits 可以为 Seconds, Minutes, Hours 或 Days(或仅使用这些单词的首个字母). 如果 Value 为空, 则使用当前时间代替. 同样地, 如果 Var 是空变量, 则使用当前时间代替.

结果总是被 向下 取整到最近的整数. 例如, 如果两个时间戳之间的实际差为 1.999 天, 那么运算的结果将为 1 天. 如果需要更高的精度, 请在 TimeUnits 中使用 Seconds 并把结果除以 60.0, 3600.0 或 86400.0(以得到更精确的分钟数, 小时数或天数).

如果 VarValue 其中一个为无效的时间戳或包含早于 1601 的年份, 则 Var 会被置空来表示此问题.

内置变量 A_Now 包含了 YYYYMMDDHH24MISS 格式的当前本地时间.

要精确地测出两个事件之间所经过的时间, 请使用 A_TickCount 方法, 因为它提供了毫秒级的精度.

要从一个时间戳中加上或减去一定的秒数, 分钟数, 小时数或天数, 请使用 EnvAdd(减法通过加上负数来实现).

备注

此命令等同于这种简写形式: Var -= Value.

通过使用 Var++, Var--, ++Var--Var 可以让变量增加或减去 1.

如果 VarValue 其中一个为空或不以数字开头, 那么在计算中它会被视为 0(不过用在表达式 内部 或使用了 TimeUnits 参数时例外).

如果 VarValue 都为小数, 那么最后的结果将为浮点数, 而格式由 SetFormat 决定.

EnvAdd, EnvMult, EnvDiv, SetFormat, 表达式, If Var is [not] Type, SetEnv, FileGetTime

示例

MyCount 设置为自身减 2.

EnvSub, MyCount, 2

等同于上面的命令.

MyCount -= 2

计算两个时间戳之间的天数, 并报告结果.

var1 := 20050126
var2 := 20040126
EnvSub, var1, %var2%, days
MsgBox, %var1%  ; 结果将是 366, 因为 2004 是个闰年.