1年中すべての日曜日の日付を検索するスクリプト

1年中すべての日曜日の日付を検索するスクリプト

年間54日目の日曜日の日付を印刷したいと思います。次のスクリプトを作成しましたが、出力にエラーが発生します。

スクリプト:

req_date=`date +%m%d%Y`

for i in {1..54}

do
   NEXT_DATE=$(date +%m%d%Y -d "$req_date +  7*$i day")
   echo "$NEXT_DATE"
done

出力

+ for i in '{1..54}'
++ date +%m%d%Y -d '11132019 +  7*32 day'
date: invalid date ‘11132019 +  7*32 day’
+ NEXT_DATE=
+ echo ''

+ for i in '{1..54}'
++ date +%m%d%Y -d '11132019 +  7*33 day'
date: invalid date ‘11132019 +  7*33 day’
+ NEXT_DATE=
+ echo ''

+ for i in '{1..54}'
++ date +%m%d%Y -d '11132019 +  7*34 day'
date: invalid date ‘11132019 +  7*34 day’
+ NEXT_DATE=
+ echo ''

+ for i in '{1..54}'
++ date +%m%d%Y -d '11132019 +  7*35 day'
date: invalid date ‘11132019 +  7*35 day’
+ NEXT_DATE=
..

誰かが私を助けることができますか?

ベストアンサー1

存在するksh93

printf '%(%Y-%m-%d)T\n' '2020-01 '{1..52}'th Sunday'

2020年の全52日曜日のリストを提供します(より便利で明確な形式で提供されますが、YYYY-MM-DD本当に(本当に?)必要に応じていつでも変更できます)。%m%d%Y

printf '%(%Y-%m-%d)T\n' '2023-01 '{1..53}'th Sunday'

2023年には53。

年に日曜日は54日にすることはできません。

年に54人がいる可能性がありますそのうちの2つは完了していないため、date +%W00〜53の値を使用できますが、00週または53週のうち少なくとも1つの日曜日は隣接する年に属します(そして00週または53週が1年以上に属することがあります)。 ; ISOの週番号()を使用すると、%Vこれを防ぎ、01から53まで進みます。

おすすめ記事