LoginSignup
2
1

More than 1 year has passed since last update.

Macのdateコマンドで週の開始日(weekday)を取得する

Last updated at Posted at 2021-08-01

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

左から
- 引数の日付
- 引数の前日
- 曜日
- 週の開始日の日付(日曜はじまり)
- 週の開始日の日付(月曜はじまり)

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1