Macのdateコマンドでは-dオプションが利用できない
忘れた頃にハマる。。
週の開始日なども取得できないので、関数を作成した。
週の開始日を取得する関数
#!/bin/bash
######################################################################
# 週の開始日を返却するfanction
# 引数
# 1:指定あり→指定日を起点に返却 指定なし→実行日を起点に返却
# return
# sdate=指定日
# sb1date=指定日の前日
# wname=指定日の曜日
# wdate=指定日の週の開始日(日曜はじまり)
# w1date=指定日の週の開始日(月曜はじまり)
######################################################################
function weekday(){
# 引数で指定日があればそれを利用、なければ実行日を利用する
if [[ "$1" ]]
then
sdate=$(date -j -f "%Y-%m-%d" "$1" +"%Y-%m-%d")
else
sdate=$(date +"%Y-%m-%d")
fi
sb1date=$(date -j -v-1d -f "%Y-%m-%d" "$sdate" +"%Y-%m-%d")
wname=$(date -j -f "%Y-%m-%d" "$sdate" +"%w")
wdate=$(date -j -v-"$wname"d -f "%Y-%m-%d" "$sdate" +"%Y-%m-%d")
w1date=$(date -j -v+1d -f "%Y-%m-%d" "$wdate" +"%Y-%m-%d")
echo $sdate $sb1date $wname $wdate $w1date
}
weekday $1
利用方法
$ sh weekday.sh 2021-6-9
2021-06-09 2021-06-08 3 2021-06-06 2021-06-07
左から
- 引数の日付
- 引数の前日
- 曜日
- 週の開始日の日付(日曜はじまり)
- 週の開始日の日付(月曜はじまり)