我需要创建一个脚本,在这里我可以计算持续时间,例如:
assign duration1 5.hours
assign duration2 4.minutes
assign duration3 10.seconds
assign seconds [calc_duration [getVar duration1] + [getVar duration2] + [getVar duration3]]*
我想得到一个例子的响应(秒(,我会有";18250〃;秒。
你能帮我做这个吗。
谢谢。
clock add
命令可以使用持续时间进行计算,但需要使用基本时间。这一点很重要,因为例如,由于夏令时规则(每年都不一样(,并非所有月份的天数都相同,也并非所有天数的小时数都相同。如果你只处理小单元,而不是太多,你可以忽略这一点,并使用0
(Unix纪元的开始(作为基准时间。
set seconds [clock add 0 5 hours 4 minutes 10 seconds]
但是,如果你的工作时间较长,你就需要更加小心。clock add
仍然有工具,但您必须正确选择基本时间戳并指定您感兴趣的区域设置。
# You're really supposed to scan with a format, but I'm lazy
set baseTimestamp [clock scan "4/4/2022 10:30 EST"]
set timezone :America/New_York; # EST/EDT
set timeBits {5 months 4 days 3 hours 2 minutes 1 second}
# Do the time arithmetic
set targetTimestamp [clock add $baseTimestamp {*}$timeBits -timezone $timezone]
# Convert into an elapsed number of seconds
set seconds [expr {$targetTimestamp - $baseTimestamp}]
# 13575721 seconds is a fair while...