開始日から今日までの間に特定の曜日が何回やって来たかをカウントするシェルスクリプト

開始日から今日までの間に特定の曜日が何回やって来たかをカウントするシェルスクリプトです。 ExcelやAccessなんかだともっと楽にできそうです。

#!/bin/sh

START_DAY="2014-10-10"
TODAY=`date +%Y-%m-%d`
#チェック対象の曜日(0:日曜日)
TARGET_WEEK=1

#日数をカウントします
DIFF=`expr \( \`date -d"$TODAY" +%s\` - \`date -d"$START_DAY" +%s\` \) / 60 / 60 / 24`
#何週かカウントします
WEEKS=`expr $DIFF / 7`
#余った日数をカウントします
REST=`expr $DIFF % 7`
IN_REST=0
#余った日数の中にチェック対象の曜日が含まれているかチェックします
for ((i=0;i<$REST;i++))
do
  TMP=`date -d"$TODAY $i days ago" +%w`
  if [ ${TMP} -eq ${TARGET_WEEK} ]; then
    IN_REST=1;
  fi
done
#余った日数の中にチェック対象の曜日が含まれていれば+1します
if [ ${IN_REST} -eq 1 ]; then
  WEEKDAY=`expr $WEEKS + 1`
else
  WEEKDAY=$WEEKS
fi
  echo "$WEEKDAY"