时间¶
时间计算¶
时间运算符是#,完整的用法是:
#(..)years(..)months(..)weeks(..)days(..)hours(..)minutes(..)seconds(..)milliseconds
支持简写时间单位, 完整的简写形式:
#(..)y(..)m(..)w(..)d(..)h(..)mm(..)s(..)ms
| 单位 | 完整写法 | 简写 | 其他形式 |
|---|---|---|---|
| 年 | years | y | year |
| 月 | months | m | month |
| 周 | weeks | w | week |
| 天 | days | d | day |
| 小时 | hours | h | hour |
| 分钟 | minutes | mm | minute |
| 秒 | seconds | s | second |
| 毫秒 | milliseconds | ms | millisecond |
m表示月份, mm 表示分钟
对于时分秒,还支持另一种常见的写法 #HH:mm:ss:
-
#HH:mm:ss表示HH小时mm分钟ss秒, 等价于
#(h)hours(m)minutes(s)seconds -
#HH:mm表示HH小时mm分钟, 等价于
#(h)hours(m)minutes
#HH:mm:ss 不支持括号, 所以也不支持括号内的表达式
表达式是可以选的, 不用写完整
#1year#2m3weeks#2w1d3s#(1+2)d5h3ms#(min(10, 9+1.5) - 1)days3ms
上面的写法很灵活, 都是合法的
当括号内的表达式是数字时,括号可以省略。
比如 #1d 表示1天, #-1h 表示-1小时, #1.5mm 表示1.5分钟, #1s 表示1秒。
括号内的表达式不是数字时,括号不可以省略
-
支持
#(1+2)d等价于#3d
#(1.5+2.5)mm等价于#4mm
#(max(3, 2, 1))w等价于#3w -
不支持
#1+2d-->ERROR, 需要写成#(1+2)d
支持加减法
#时间 ± #时间 = #时间
-
#1y2m3d + #3w5h = #1y2m3w3d5h -
#10:10:10 - #10:10 = #0:0:10
示例:
#1y2m3d // 1年2月3天
#2w3d5h // 2周3天5小时
#1d2h3mm // 1天2小时3分钟
#1d2h3s // 1天2小时3秒
#1d2h3ms // 1天2小时3毫秒
#10:10:10 // 10小时10分钟10秒
#10:10 // 10小时10分钟
// 时间加法
#1y2m3d + #3w5h = #1y2m3w3d5h
// 时间减法
#1y2m3d - #3w5h = #1y2m3w3d5h
// 2小时10分钟10秒加上1小时20分钟20秒
// 等于3小时30分钟30秒
#2:10:10 + #1:20:20 = #3:30:30
// 10小时10分钟10秒减去10小时10分钟
// 等于10秒
#10:10:10 - #10:10 = #0:0:10
时间转换¶
#(时间): 默认显示格式:xx年xx月+xx 毫秒
年和月不能转化为毫秒,因为它们是不可精确计算的。
转换符号 > # 可以转换不同输出格式:
#(时间) > #: 将时间转化为格式:xx年xx月+xx 天 xx 小时 xx 分钟 xx 秒 xx 毫秒#(时间) > #w: 将时间转化为格式:xx年xx月+xx 周#(时间) > #d: 将时间转化为格式:xx年xx月+xx 天#(时间) > #h: 将时间转化为格式:xx年xx月+xx 小时#(时间) > #m: 将时间转化为格式:xx年xx月+xx 分钟#(时间) > #s: 将时间转化为格式:xx年xx月+xx 秒#(时间) > #ms: 不支持,因为这是默认显示格式
#1d2h2mm // 输出: 93780000ms
#1d2h2mm > # // 输出: 1天 2小时 2分钟 0秒
#1d2h2mm > #w // 输出: 0.15周
#1d2h2mm > #d // 输出: 1.08天
#1d2h2mm > #h // 输出: 26.03小时
#1d2h2mm > #m // 输出: 1562.00分钟
#1d2h2mm > #s // 输出: 93720.00秒
#1y1d2h2mm // 输出: 1年+93780000ms
#1y1d2h2mm > # // 输出: 1年+1天 2小时 2分钟 0秒
#1y2m1d2h2mm // 输出: 1年2月+93780000ms
#1y2m1d2h2mm > # // 输出: 1年2月+1天 2小时 2分钟 0秒
#1y2m1d2h2mm > #d // 输出: 1年2月+1.08天


