2016-08-19 20 views
0

シェルスクリプト内の2つの日付の差を計算したい場合、結果が3か月より大きい場合、正しいstart_dateを入力するためにエラーがスローされます。例えばシェルスクリプト内の日付の差を計算する

は考える:START_DATE = "2016年2月15日"、END_DATE = date +%Y-%m-%d

感謝。

答えて

1

これは完璧な解決策ではありません。なぜなら、毎月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 
関連する問題