과거 날짜 구하기(get_past_date.sh)
1 minute read
- Tested Environment : AIX, HP-UX, SunOS, Linux(RHEL, Ubuntu)
# ===========================< 과거날짜 구하기 >==================================
# input - Number ex) 1 : 하루전, 7 : 7일전
# output - Date (형식 : YYYYMMDD)
# --------------------------------------------------------------------------------
# 20080408 작성
# 20110105 IBM에서 "201012 31" 이런식으로 아웃풋 내던것 수정
# 20110105 Linux(Ubuntu)에서 tail +3 안되던것 수정 tail -n +3
# ================================================================================
# --< Variable >------------------------------------------------------------------
MON=`date +%m`
DAY=`date +%d`
YEAR=`date +%Y`
# --< 날짜 구하기 >---------------------------------------------------------------
if [[ $# -ne 1 ]]
then
echo "사용법 : get_past_date.sh 1"
exit 1
fi
i=0
while [[ i -lt $1 ]]
do
if [[ "$MON" = "01" ]] && [[ "$DAY" = "01" ]]
then
MON=12
(( YEAR=10#$YEAR - 1 ))
DAY=$((`cal $MON $YEAR |tail -n +3 |wc -w`))
elif [[ "$DAY" = "01" ]] && [[ "$MON" != "01" ]]
then
(( MON=10#$MON - 1 ))
if [[ $MON -lt 10 ]]
then
MON=0$MON
fi
DAY=$((`cal $MON $YEAR |tail -n +3 |wc -w`))
(( DAY=10#$DAY - 1 + 1 ))
if [[ $DAY -lt 10 ]]
then
DAY=0$DAY
fi
else
(( DAY=10#$DAY - 1 ))
if [[ $DAY -lt 10 ]]
then
DAY=0$DAY
fi
fi
(( i = $i + 1 ))
done
WORK_DATE=$YEAR$MON$DAY
echo $WORK_DATE
Comments