2016-08-19 95 views
0

我想計算shell腳本中兩個日期之間的差異,如果結果大於三個月,那麼它應該拋出錯誤以輸入正確的start_date。計算shell腳本中日期之間的差異

例如考慮:起始日期= 「2016年2月15日」 日期,結束日期= 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