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

@iwasaki 271views 更新:2014年10月9日

開始日から今日までの間に特定の曜日が何回やって来たかをカウントするシェルスクリプトです。 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"

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません