#!/bin/bash
case "$2" in
1|01)
day=1
endday=31;;
2|02)
day=32
if [ `expr $1 % 4` -eq 0 ]; then
if [ `expr $1 % 100` -ne 0 -o `expr $1 % 400` -eq 0 ]; then
endday=29
else
endday=28
fi
else
endday=28
fi
;;
3|03)
day=60
endday=31;;
4|04)
day=91
endday=30;;
5|05)
day=121
endday=31;;
6|06)
day=152
endday=30;;
7|07)
day=182
endday=31;;
8|08)
day=213
endday=31;;
9|09)
day=244
endday=30;;
10)
day=274
endday=31;;
11)
day=305
endday=30;;
12)
day=335
endday=31;;
esac
# 2월이 윤달일 경우, 3월부터 $day 변수의 값을 1씩 증가시킨다.
if [ $2 -gt 2 ]; then
if [ `expr $1 % 4` -eq 0 ]; then
if [ `expr $1 % 100` -ne 0 -o `expr $1 % 400` -eq 0 ]; then
day=`expr $day + 1`
else
day=$day
fi
else
day=$day
fi
fi
# AD 1년 1월 1일부터 지금까지 지난 일자 계산
year=`expr $1 - 1`
total_day=`expr \( $year \* 365 \) + \( $year / 4 \) - \( $year / 100 \) + \( $year / 400 \) + $day`
yoil=`expr $total_day % 7`
echo ""
echo " $1년 $2월"
echo "===================="
echo "^[[31m일^[[0m 월 화 수 목 금 ^[[34m토^[[0m"
echo "===================="
i=1
while [ : ]
do
for j in 1 2 3 4 5 6 7
do
A=`expr $i - $yoil`
if [ "$A" -le 0 ]; then
A=" "
fi
if [ "$A" -gt "$endday" ]; then
if [ `expr $i % 7` -eq 1 ]; then
echo "===================="
echo ""
exit
else
echo ""
echo "===================="
echo ""
exit
fi
fi
if [ "$A" -lt 10 ]; then
if [ $j -eq 1 ]; then
echo -n " ^[[31m$A^[[0m "
elif [ $j -eq 7 ]; then
echo -n " ^[[34m$A^[[0m "
else
echo -n " $A "
fi
else
if [ $j -eq 1 ]; then
echo -n "^[[31m$A^[[0m "
elif [ $j -eq 7 ]; then
echo -n "^[[34m$A^[[0m "
else
echo -n "$A "
fi
fi
i=`expr $i + 1`
done
echo ""
done
'Language > SHELL' 카테고리의 다른 글
[BASH] 쉘로 짠 성적관리 프로그램 (0) | 2012.07.12 |
---|---|
[Bash] backup(단순 벡업) (0) | 2012.07.12 |
[Bash] 디렉토리별 목록정리 (0) | 2012.07.12 |
[Bash] 확장자를 유지하면서 파일의 이름만 변경시키는 스크립트 (0) | 2012.07.12 |
[Bash] 파일이름을 한 번에 변경하기 (0) | 2012.07.12 |