#!/bin/sh
time=${1:-$(date '+%H:%M')}
case "$time" in
*:*) ;;
*) printf 'Użycie: %s [HH:MM]\n' "$0" >&2; exit 1 ;;
esac
hour=${time%%:*}
min=${time#*:}
hour=${hour#0}
min=${min#0}
: "${hour:=0}" "${min:=0}"
h=$((hour % 12))
[ "$h" -eq 0 ] && h=12
next=$((h % 12 + 1))
w() {
case $1 in
5) echo pięć ;;
10) echo dziesięć ;;
15) echo kwadrans ;;
20) echo dwadzieścia ;;
esac
}
case $min in
0)
printf 'punkt %s\n' "$h"
;;
1)
printf 'po %s\n' "$h"
;;
[2-6])
[ "$min" -eq 5 ] &&
printf 'pięć po %s\n' "$h" ||
printf '~pięć po %s\n' "$h"
;;
[7-9]|1[01])
[ "$min" -eq 10 ] &&
printf 'dziesięć po %s\n' "$h" ||
printf '~dziesięć po %s\n' "$h"
;;
1[2-6])
[ "$min" -eq 15 ] &&
printf 'kwadrans po %s\n' "$h" ||
printf '~kwadrans po %s\n' "$h"
;;
1[7-9]|2[01])
[ "$min" -eq 20 ] &&
printf 'dwadzieścia po %s\n' "$h" ||
printf '~dwadzieścia po %s\n' "$h"
;;
2[2-6])
[ "$min" -eq 25 ] &&
printf 'pięć do wpół do %s\n' "$next" ||
printf '~pięć do wpół do %s\n' "$next"
;;
2[7-9]|3[01])
[ "$min" -eq 30 ] &&
printf 'wpół do %s\n' "$next" ||
printf '~wpół do %s\n' "$next"
;;
3[2-6])
[ "$min" -eq 35 ] &&
printf 'pięć po wpół do %s\n' "$next" ||
printf '~pięć po wpół do %s\n' "$next"
;;
3[7-9]|4[01])
[ "$min" -eq 40 ] &&
printf 'za dwadzieścia %s\n' "$next" ||
printf '~za dwadzieścia %s\n' "$next"
;;
4[2-6])
[ "$min" -eq 45 ] &&
printf 'za kwadrans %s\n' "$next" ||
printf '~za kwadrans %s\n' "$next"
;;
4[7-9]|5[01])
[ "$min" -eq 50 ] &&
printf 'za dziesięć %s\n' "$next" ||
printf '~za dziesięć %s\n' "$next"
;;
5[2-6])
[ "$min" -eq 55 ] &&
printf 'za pięć %s\n' "$next" ||
printf '~za pięć %s\n' "$next"
;;
5[7-9])
printf 'prawie %s\n' "$next"
;;
esac