#!/bin/bash echo "何年・何月のカレンダーを表示しますか?" echo "西暦何年?(数字のみ入力)" read year echo "何月?(数字のみ入力)" read month if [ $year -lt 1 -o $year -gt 9999 ] then echo "計算できません" exit elif [ $month -lt 1 -o $month -gt 12 ] then echo "計算できません"    exit fi if [ $month = 1 -o $month = 2 ];then Y=`expr $year - 1` M=`expr $month + 12` else Y=$year M=$month fi J=`expr $Y / 100` K=`expr $Y % 100` j=`expr $J / 4` k=`expr $K / 4` m=`expr \( $M + 1 \) \* 26 / 10` j2=`expr $J \* 2` H=`expr 1 + $m + $K + $k + $j - $j2` L=`expr $H % 7` if [ $L -lt 0 ] then h=`expr $L + 7` else h=$L fi ye=`expr $year / 100` ar=`expr $year % 100` uY=`expr $year % 4` uy=`expr $ye % 4` urutest1=`test $uY = 0 -a $ar -ne 0 ; echo $?` urutest2=`test $ar = 0 -a $uy = 0 ; echo $?` if [ \( $urutest1 = 0 -o $urutest2 = 0 \) -a $M = 14 ];then matsu=29 elif [ $M = 4 -o $M = 6 -o $M = 9 -o $M = 11 ];then matsu=30 elif [ $M = 14 ];then matsu=28 else matsu=31 fi printf "%16s %12s\n" $year年 $month月 printf "%4s %4s %4s %4s %4s %4s %4s\n" Sun Mon Tue Wed Thu Fri Sat if [ $h = 0 ];then sp=6 else sp=`expr $h - 1` fi kuuhaku=1 while : do if [ $kuuhaku -gt $sp ];then break fi num[ $kuuhaku ]=" " kuuhaku=`expr $kuuhaku + 1` done hinichi=1 while : do if [ `expr $hinichi + $sp` -gt 42 ];then break fi if [ $hinichi -gt $matsu ];then num[`expr $hinichi + $sp` ]=" " else num[ `expr $hinichi + $sp` ]=$hinichi fi hinichi=`expr $hinichi + 1` done printf "%4s %4s %4s %4s %4s %4s %4s\n" "${num[1]}" "${num[2]}" "${num[3]}" "${num[4]}" "${num[5]}" "${num[6]}" "${num[7]}" printf "%4d %4d %4d %4d %4d %4d %4d\n" "${num[8]}" "${num[9]}" "${num[10]}" "${num[11]}" "${num[12]}" "${num[13]}" "${num[14]}" printf "%4d %4d %4d %4d %4d %4d %4d\n" "${num[15]}" "${num[16]}" "${num[17]}" "${num[18]}" "${num[19]}" "${num[20]}" "${num[21]}" printf "%4d %4d %4d %4d %4d %4d %4d\n" "${num[22]}" "${num[23]}" "${num[24]}" "${num[25]}" "${num[26]}" "${num[27]}" "${num[28]}" printf "%4s %4s %4s %4s %4s %4s %4s\n" "${num[29]}" "${num[30]}" "${num[31]}" "${num[32]}" "${num[33]}" "${num[34]}" "${num[35]}" printf "%4s %4s %4s %4s %4s %4s %4s\n" "${num[36]}" "${num[37]}" "${num[38]}" "${num[39]}" "${num[40]}" "${num[41]}" "${num[42]}"