date(1) を使用して整数を曜日に変換する

date(1) を使用して整数を曜日に変換する

を使用して、date曜日を1から7の整数に変換できます。たとえば、次のようになります。

$ date -d "Thursday" +%u
4

しかし、逆にしたい場合はどうすればいいですか?それはまるで、

$ date [options] [+format]
Thursday

日付が合っても構いませんので、他のプログラムをご利用ください。ここでは簡単に説明してください。

ベストアンサー1

次の日曜日の日付を取得し、N日数を追加し、その特定の日付の日付名を印刷できます。

getdayname () {
nextplus=$(date -d "next Sunday +$1 days")
date -d "${nextplus}" '+%A'
}

getdayname 2などを実行しますgetdayname 7(家庭gnu date)。
あるいは、単に配列を使用し、たとえばdate使用しないでください。

getdayname () {
local days=( Sunday Monday Tuesday Wednesday Thursday Friday Saturday )
printf %s\\n ${days[$1]}
}

bash/を使用しても(インデックスとして)ksh必要です。printf %s\\n "${days[$1-1]}"次から始まった0)、分割+グローブを防ぐには引用符が必要です(でも機能しますyash)。

おすすめ記事