[Mac] shell で月末の日付を取得する

2023年2月1日

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

MacMac,Shell

Posted by kidatti