2016-08-19 2 views
0

Я хочу рассчитать разницу между двумя датами в сценарии оболочки, и если результат больше трех месяцев, тогда он должен ввести ошибку, чтобы ввести правильный start_date.рассчитать разницу между датами в сценарии оболочки

Для примера рассмотрим: start_date = "2016-02-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 
Смежные вопросы