计算shell脚本中日期之间的差异

时间:2016-08-19 07:44:38

标签: shell sh

我想计算shell脚本中两个日期之间的差异,如果结果大于三个月,则应输入错误输入正确的start_date。

例如考虑:start_date =“2016-02-15”,end_date = date +%Y-%m-%d

感谢。

1 个答案:

答案 0 :(得分:2)

它不是一个完美的解决方案,因为它假设每个月都有30天,但它很有必要开始。

#!/bin/sh

start_date="2016-02-15"
end_date=$(date +%Y-%m-%d)

start_date_int=$(date -ud "${start_date}" +'%s')
end_date_int=$(date -ud "${end_date}" +'%s')

seconds=$(( ${end_date_int} - ${start_date_int} ))
days=$(( ${seconds} / 86400 )) # 60*60*24
months=$(( ${days} / 30 ))

if [ "${months}" -ge 3 ]; then
    # is greater than 3 or equal 3
    echo "error"
fi