勉強に使用するコードを数行だけ書く必要がありますが、本当にあきらめています!現在、月の日付とそれに対応する日付を一覧表示できますが、それをシステム時計に接続できないため、毎月正確な日付番号を自動的に取得します。
私がしたことは次のとおりです。
#!/bin/bash
for (( i = 0; i < 30; ++i )); do
echo -e "$( date -d "now +${i} days" +"%a" )", ${i}
done
出力:
Fri, 0
Sat, 1
Sun, 2
Mon, 3
Tue, 4
Wed, 5
Thu, 6
Fri, 7
Sat, 8
Sun, 9
Mon, 10
Tue, 11
Wed, 12
Thu, 13
. . . .
.. . etc
私はこのコードが特定の月の正確な日数をリストしたいと思います。たとえば、10月には/ 31 /日があります。 11月にコードを実行すると30日が表示され、3月にコードを実行すると31日が表示され、2月に実行すると28日または29日が一覧表示されます。どうすればいいですか?
答え1
実際、あなたは近いです。以下はいくつかのマイナーな修正です。
#!/bin/bash
var=$(cal $(date +"%m %Y") | awk 'NF {DAYS = $NF}; END {print DAYS}') # Get number of days in a month
for (( i = 1; i < ${var}+1; ++i )); do
echo -e "$( date -d "now +${i} days" +"%a" )", ${i}
done
答え2
date
来月の最初の日をリクエストして最終日を計算し、その日を減算して繰り返します。
begin=1
end=$(date -d "$(date -d "$(date -d "next month" +"%Y%m01")") - 1 day" +%d)
for((i=begin;i<end;i++))
do
date -d "$(date +%Y/%m/$i)" +"%a, $i"
done