10.3.14 getDateDiff(日付の経過日数の取得)
形式
getDateDiff [-m|-y] 日付1 日付2
機能
引数に指定された2つの日付の差を出力します。
引数
- -m
-
日付の差を月の単位で出力します。
例えば,日付1が2016/05/10で,日付2が2016/06/10の場合は1を出力し,日付1が2016/05/10で,日付2が2016/06/09の場合は0を出力します。
- -y
-
日付の差を年の単位で出力します。
例えば,日付1が2015/05/10で,日付2が2016/05/10の場合は1を出力し,日付1が2015/05/10で,日付2が2016/4/10の場合は0を出力します。
なお,うるう年の場合は366日を1年と解釈し,うるう年ではない場合は365日を1年と解釈します。
上記オプションをどちらも指定しなかった場合は,日付の差を日の単位で出力します。上記オプションをどちらも指定した場合,エラー終了します。
- 日付1
-
日付を示す文字列を指定します。
- 日付2
-
日付を示す文字列を指定します。
日付には,dateコマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyy-mm-dd, yyyymmdd, mm/dd/yyyyなど)。
標準出力への出力
日付の差を示す文字列。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
引数の日付1と日付2に指定できる文字列は,dateコマンドでの絶対日時による日付の形式と同じですが,指定できる文字列かどうかのチェックはしません。
使用例
getDateDiff 2016/05/10 2016/06/10 # 「31」が出力される。 getDateDiff -m 2016/05/10 2016/08/20 # 「3」が出力される。 getDateDiff -y 2016/05/10 2018/06/10 # 「2」が出力される。 # 現在の日付と変数date1が示す日付との差を出力する。 getDateDiff $("${ADSH_DIR_CMD}date" +%Y%m%d) "$date1"