日付と日付の引き算をする方法・expr, date †dateコマンドとexprコマンドを使用することにより、日付と日付の引き算をすることができます。 関連記事 †
dateコマンドで秒を取得しexprで引き算する †dateコマンドの-dと%sを使用して1970/01/01からの経過秒数を取得しexprにより引き算および一日の秒数(60*60*24=86400秒)で割ることにより経過日数を算出しています。
実際のコマンドは以下のようになります。 expr \( `date -d'年/月/日' +%s` - `date -d'年/月/日' +%s` \) / 60 / 60 / 24 日付の引き算を行ってみる †上記で記したコマンドで日付どうしの引き算をおこなって日数を求めてみます。
関数を作って動かしてみる †以下のシェルスクリプトにより2つの日付を指定することにより日数を算出することができます。 #!/bin/bash function calc_date() { expr \( `date -d"$1" +%s` - `date -d"$2" +%s` \) / 86400 } function usage() { echo "Usage: basename $0 datestr datestr" exit 1 } if [ $# -ne 2 ]; then usage fi calc_date $1 $2 実際に上記スクリプトを実行した出力結果です。 $ chmod +x calc_date.sh 3つ日付どうしの引き算をしてみた出力結果です。 $ ./calc_date.sh 2013/1/21 2013/1/20 1 $ ./calc_date.sh 2013/1/21 2013/1/1 20 $ ./calc_date.sh 2013/1/21 2012/1/21 366 以上、exprコマンドとdateコマンドを使用して間の日数を算出する方法でした。 |