Saudações!
Notei que a função zzdiadasemana retorna valores incorretos para datas
anteriores a 1/1/1970.
$ zzdiadasemana 01/01/1970
quinta-feira
$ zzdiadasemana 31/12/1969
sexta-feira
Esta parte:
dia=$(( ${delta#-} % 7)) # remove o sinal negativo (se tiver)
Deveria ser algo assim:
dia=$((delta%7))
[ $dia -lt 0 ] && dia=$((dia+7))