# EnvSub

把变量设置为它自身减去给定的值 (也能比较日期-时间的值)。同义于：var -= value

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

#### 参数

Var | 要操作的变量名称。
Value | 任何整数、浮点数或表达式。(当提供了 TimeUnits 时将不支持表达式)。
TimeUnits | 如果提供，此参数指示命令从 Var 减去 Value 就像它们都是 YYYYMMDDHH24MISS 格式的日期-时间标记。TimeUnits 可以是 Seconds, Minutes, Hours 或 Days (或者仅用它们的第一个字母)。如果 Value 为空，将用当前的时间来代替它。同样，如果 Var 是一个空变量，将用当前的时间来代替它。 结果总会向下调整成整数。例如，如果两个时间标记之间实际的差是 1.999 天，它将报称 1 天。如果需要更高的精度，可指定 TimeUnits 为 Seconds 并把结果除以 60.0, 3600.0 或 86400.0 。 如果 Var 或 Value 是一个无效的时间标记或者包含一个早于 1601 的年份，Var 将被设为空来表明有问题。 内置变量 A_Now 包含 YYYYMMDDHH24MISS 格式的当前本地时间。 要精确地测定在两个事件之间消逝的时间，可用 A_TickCount 方法，因为它提供了毫秒级的精度。 要从一个时间标记加上或者减去某个 seconds, minutes, hours 或 days 的数值，也可用 EnvAdd (减法是通过添加一个负数来获得的)。

#### 注意

此命令等于这种速记形式：Var -= Value

变量通过使用 Var++, Var--, ++Var 或 --Var 能被加上或减去 1 。

如果 Var 或 Value 为空或者不以数字开头，为了计算的目的它将被视为 0 (除了在一个表达式内部使用时，除了使用 TimeUnits 参数时)。

如果 Var 或者 Value 包含小数点，最后的结果将是一个由 SetFormat 设置格式的浮点数。

#### 相关命令

EnvAdd, EnvMult, EnvDiv, SetFormat, Expressions, If var is [not] type, SetEnv, FileGetTime

#### 示例

    EnvSub, MyCount, 2
    MyCount -= 2 ;等同于上面的命令

    var1 = 20050126
    var2 = 20040126
    EnvSub, var1, %var2%, days
    MsgBox, %var1% ;答案会是 366 天，因为 2004 是个闰年。

翻译：天堂之门 menk33@163.com 2008年11月6日