使用 Shell 脚本减去两个日期

使用 Shell 脚本减去两个日期

如何使用 Shell 脚本减去纪元格式的两个日期。我想要月、日、小时格式的输出。而且它甚至应该可以工作超过 12 个月(因为我遇到过一些如果超过 12 个月就会重置为 0 个月的情况)

答案1

尝试这样的事情:

#!/bin/bash

d1=`date -d 20140929 +%s`
d2=`date -d 20001115 +%s`

date --date=@$(($d1 - $d2)) +'%m months, %d days, %H hours'

输出:

11 months, 15 days, 02 hours

答案2

#!/bin/bash

d=(60sec 60min 24hours 30days 12month 1000year)
i=0

while [ $1 -ge ${d[i]%%[a-z]*} ]
do
    set -- $(($1/${d[i]%%[a-z]*})) $(($1%${d[i]%%[a-z]*})) ${d[i]##*[0-9]} ${*:2}
    ((i++))
done 
echo $1 ${d[i]##*[0-9]} ${*:2}

相关内容