我想计算shell脚本中两个日期之间的差异,如果结果大于三个月,则应输入错误输入正确的start_date。
例如考虑:start_date =“2016-02-15”,end_date = date +%Y-%m-%d
感谢。
答案 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