特定の週月曜日のISO日付を取得するには?たとえば、2021年の32週目の月曜日?
出馬すると、date -dmonday +%Y%m%d
今週の月曜日の日付がわかります。2021
andを32
変数として渡し、その週の月曜日の日付をどのように取得できますか?
ベストアンサー1
これはうまくいくようです。
#! /bin/bash
year=$1
week=$2
read s w d < <(date -d $year-01-01T13:00 '+%s %V %u')
(( s += ((week - w) * 7 - d + 1) * 24 * 60 * 60 ))
date -d @$s '+%V:%w %Y-%m-%d %a'
試験用
for y in {1970..2022} ; do
maxw=$(date +%V -d $y-12-31)
if (( max == 1 )) ; then # The last day of the year belongs to week #1.
max=52
fi
for ((w=1; w<=maxw; ++w)) ; do
date.sh $y $w | tail -n1 | grep -q "0\?$w:1 " || echo $y $w
done
done
date.sh
上記のスクリプトはどこにありますか?