#!/bin/bash # # calcweek.sh - calculate the current week of the semester # ## ## Configuration - set dates to the MONDAY of the week in question ## start="20100125" break1="20100301" break2="20100412" duration="14" boffset="0" breakweek=0 ## ## Obtain offsets ## sem_start="`date +'%j' -d $start`" sem_break1="`date +'%j' -d $break1`" sem_break2="`date +'%j' -d $break2`" sem_today="`date +'%j'`" ## ## Some debugging ## #sem_today=95 #echo "sem_today: $sem_today" #echo "sem_break1: $sem_break1" #echo "sem_break2: $sem_break2" ## ## Determine break week offsets ## if [ "$sem_today" -ge "$sem_break1" ]; then boffset=1 let endofweek=${sem_break1}+6 if [ "$sem_today" -le "$endofweek" ]; then breakweek=1 fi fi if [ "$sem_today" -ge "$sem_break2" ]; then boffset=2 let endofweek=${sem_break2}+6 if [ "$sem_today" -le "$endofweek" ]; then breakweek=2 fi fi ## ## Perform THE calculation ## week="$(((((${sem_today}-${sem_start})/7)+1)-$boffset))" # If we're in a breakweek, week is set to 0. if [ "$breakweek" -gt 0 ]; then week=0 fi ## ## If we're past the end of the semester, do nothing (set to 0, treat like breakweek) ## if [ "$week" -gt "$duration" ]; then week=0 fi ## ## Produce output for other scripts to use ## echo "$week" exit 0