local dow dom days n=1 Y m d V w B
if [ $month ]; then
read Y m d V w B<<-EOF
- $(date -d "${month}-01" +"%Y %m %d %V %w %B")
+ $(date -d "${month}-01" +"%_Y %_m %_d %_V %w %B")
EOF
else
read Y m d V w <<-EOF
fi
case $m in
- 0[13578]|10|12)
+ [13578]|10|12)
days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31";;
- 0[469]|11)
+ [469]|11)
days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30";;
- 02) if [ $(( Y / 400 )) = 0 ]; then
+ 2) if [ $(( Y / 400 )) = 0 ]; then
days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29";
elif [ $(( Y / 100 )) = 0 ]; then
days="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28";
"$input" "$date" "$input" "$date" "$(checked $dom $selected)" "$input" "$date" "$dom"
;;
esac
- [ $dow = 0 ] && printf ']\n'
- [ $dow = 0 ] && V=$(( V % 53 + 1))
+ if [ $dow = 0 ]; then
+ printf ']\n'
+ V=$((V + 1))
+ [ $m = 1 -a $V -ge 53 ] && V=1
+ fi
done
- if [ $dow -le 6 ]; then
+ if [ $dow -gt 0 ]; then
while [ $dow -le 6 ]; do printf '[td ]'; dow=$((dow + 1)) ; done
printf ']\n'
fi