AIXで日付計算

AIXのdateは「date -date '1 day ago' '+%Y%m%d'」とかが使えない。もうねアボカドバナナ(ry
なので対策考えた。

1週間前の日付を取得する場合

スマートにperlワンナイラー

秒を取得して7日分マイナスして日付に戻す

 $perl -e '@T=localtime(time-86400*7);printf("%d%d%d \n",($T[5] + 1900),$T[4]+1, $T[3])'
 20071221

漢らしくTZ

7日分の時間&時差を引く (159=24*7-9)

 $env TZ=JST+159 date '+%Y%m%d' 
 20071221

一直線にshで引き算

 (前略)
 while (( $MONTH <= 0 ))
 do
   #年を1減らして、月に12を加える
   MONTH=`expr $MONTH + 12`
   YEAR=`expr $YEAR - 1`
 done
 (後略)