シェルスクリプトを使用してepoch形式から2つの日付を減算する方法。月、日、時間形式で出力したいです。そして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}