[Mac] shell で月末の日付を取得する
Mac (BSD系) と Linux (GNU系) ではオプションが異なります。ここでは Mac 向けのオプションを扱います。Linux 向けはこちら。
日時フォーマット
フォーマット指定し、年(%Y)、月(%m)、日(%d)、時(%H)、分(%M)、秒(%S)で表すことができます。
date '+%Y%m%d'
20230201
date '+%Y-%m-%d'
2023-02-01
date '+%Y-%m-%d %H:%M:%S'
2023-02-01 01:05:45
日時の計算
日時を計算するには -v オプションを利用します。プラス(+)もしくはマイナス(-)を付け、1日前(-v-1d)、1日後(-v+1d)のように指定します。
date -v-1y '+%Y-%m-%d'
2022-02-01
date -v-1m '+%Y-%m-%d'
2023-01-01
date -v-1d '+%Y-%m-%d'
2023-01-31
date -v+1y '+%Y-%m-%d'
2024-02-01
月末の出し方
月末を出すには、1日の前日は月末となることを利用します。
月初(-v1d)でマイナス1日(-v-1d)とすると、先月末日となります。
date -v1d '+%Y-%m-%d'
2023-02-01
date -v1d -v-1d '+%Y-%m-%d'
2023-01-31
date -v1d -v+1m -v-1d '+%Y-%m-%d'
2023-02-28
date -v1d -v+2m -v-1d '+%Y-%m-%d'
2023-03-31
date -v1d -v+3m -v-1d '+%Y-%m-%d'
2023-04-30