次の営業日(月曜日から金曜日まで)のみが必要です(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
月曜日から金曜日までです。