範囲内の営業日を探す

範囲内の営業日を探す

次の営業日(月曜日から金曜日まで)のみが必要です(bashから)。

#!/bin/bash
startdate=20141030
enddate=20141120

dates=()
for (( date="$startdate"; date != enddate; )); do
    dates+=( "$date" )
    date="$(date --date="$date + 1 days" +'%Y%m%d')"
done
echo "${dates[@]}"

答え1

スクリプトを次のように変更します。

#!/bin/bash
startdate=20141030
enddate=20141120

dates=()
for (( date="$startdate"; date != enddate; )); do
    if [ "$(date --date="$date" +'%u')" -le "5" ]; then
      dates+=( "$date" )
    fi
    date="$(date --date="$date + 1 days" +'%Y%m%d')"
done
echo "${dates[@]}"

配列ifに日付を追加する前に - 句を追加しました。 %u シーケンスは次dateを示します。

    %u     day of week (1..7); 1 is Monday

-leしたがって、値が()以下の場合は5月曜日から金曜日までです。

関連情報