#!/bin/ksh -p usage() { echo "Usage: `basename $0` day month year" exit 1 } set -x set -A days 0 31 28 31 30 31 30 31 31 30 31 30 31 set -A name x Monday Tuesday Friday Saturday Sunday if (( $# != 3 )) ; then usage fi if (( $2 < 1 || $2 > 12 )) ; then usage fi leap=0 if (( $(( $3 % 4 )) == 0 )) ; then leap=1 fi if (( $(( $3 % 100 )) == 0 )) ; then leap=0 fi if (( $(( $3 % 400 )) == 0 )) ; then leap=1 fi days[2]=$((days[2] + leap)) if (( $1 < 1 || $1 > days[$2] )) ; then usage fi i=1 day=$1 while (( i < $2 )) ; do day=$((day+days[i])) i=$((i+1)) done year=$(( $3 - 1997 )) i=1 month=0 flag=0 while ((flag == 0)) ; do month=$((month+1)) oldday=$day day=$((day-25)) if ((month == 8)) ; then day=$((day+10-leap)) fi if ((day < 1)); then day=$oldday flag=1 fi done print $day $month $year