function cur_weekday { typeset ymd=$1 ym y m d i (( ymd >= 17520914 && ymd <= 17520930 )) && (( ymd = ymd - 11 )) (( d = ymd % 100 )) (( ym = ymd / 100 )) (( y = ym / 100 )) (( m = ym % 100 )) cal $m $y | while read i; do set -- $i [[ $1 == 1 ]] && { printf "%s\n" $(( ( 13 + d - $# ) % 7 )) break } done }