今後6ヶ月間のすべての週末をどのようにリストしますか?

今後6ヶ月間のすべての週末をどのようにリストしますか?
$ SAT=$(date -dsaturday +%Y-%m-%d)
$ SUN=$(date -dsunday +%Y-%m-%d)
$ 
$ echo $SAT
2016-04-09
$ echo $SUN
2016-04-10
$ 

私は土曜日と日曜日の次の日付をリストする方法を知っています。

次の6ヶ月間、次の土曜日と日曜日の両方をリストする方法は?

Ubuntuでbashを使用しています。

ベストアンサー1

土曜日および/または日曜日の最初の開始日を決定したら、相対日付を使用するbashスクリプトのループを使用してこれを実行できます。

#!/bin/bash

SAT=$(date -dsaturday +%Y-%m-%d)
SUN=$(date -dsunday +%Y-%m-%d)
# 365 days/year / 2 ~= 182 days
ENDSAT=$(date -d "$SAT + 182 days" +"%Y-%m-%d")
ENDSUN=$(date -d "$SUN + 182 days" +"%Y-%m-%d")

echo $SAT
echo $SUN

until [ "$SUN" == "$ENDSUN" ]; do
  SAT=$(date -d "$SAT + 7 days" +%Y-%m-%d)
  SUN=$(date -d "$SUN + 7 days" +%Y-%m-%d)
  echo $SAT
  echo $SUN
done

初期設定では「+6ヶ月」は使用しません。月ごとに日数が異なるため、作業日が多少異なる場合があります。

おすすめ記事