EnvSub
设置变量的值为它自身减去给定的值(还可以比较日期-时间值)。同义于:Var -= Value
。
EnvSub, Var, Value [, TimeUnits] Var -= Value [, TimeUnits] Var--
参数
- Var
要运算的 变量 名.
- 值
任何整数, 浮点数或 表达式 (使用了 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 method, 因为它提供了毫秒级的精度.
要从一个时间戳中加上或减去一定的秒数, 分钟数, 小时数或天数, 请使用 EnvAdd (减法通过加上负数来实现).
备注
此命令等同于这种简写形式:Var -= Value
。
通过使用 Var++
、Var--
、++Var
或 --Var
可以让变量增加或减去 1。
如果 Var 或 Value 其中一个为空或不以数字开头, 那么在计算中它会被视为 0 (不过用在表达式 内部 或使用了 TimeUnits 参数时例外).
如果 Var 或 Value 都为小数, 那么最后的结果将为浮点数, 而格式由 SetFormat 决定.
相关
EnvAdd, EnvMult, EnvDiv, SetFormat, 表达式, If var is [not] type, SetEnv, FileGetTime
示例
EnvSub, MyCount, 2 MyCount -= 2 ; 等同于上面的命令 var1 = 20050126 var2 = 20040126 EnvSub, var1, %var2%, days MsgBox, %var1% ; 结果将是 366, 因为 2004 是个闰年.