Milloro l'escript que compta hores.
#!/home/llbatlle/.nix-profile/bin/awk -f
#
# Entrada: tt -t
#
# Distingeix 'fora' i 'dinar' com a coses que no són de la feina
BEGIN {
fora="fora";
ignora="dinar";
FS=" "
}
{
daystring = substr($3, 2);
work = $2;
if (work == fora || substr(work,1,5) == "fora,")
{
if (work == "fora,malalt")
accumtime = 8*3600
hores = int(accumtime / 3600);
minuts = int((accumtime - hores*3600) / 60);
segons = int(accumtime - hores*3600 - minuts*60);
plegant = substr($4, 1, length($4)-1);
split(daystring, diaplegar, "-");
split(plegant, horaplegar, ":");
stamp = mktime(diaplegar[1] " " diaplegar[2] " " diaplegar[3] " " horaplegar[1] \
" " horaplegar[2] " " horaplegar[3] " CEST");
diasetmana = strftime("%A", stamp)
printf "%-10s %s: %02i:%02i:%02i (plegant a les %s)\n",
diasetmana, daystring, hores, minuts, segons, plegant;
accumsetmana += accumtime;
if (diasetmana == "divendres")
{
hores = int(accumsetmana / 3600);
minuts = int((accumsetmana - hores*3600) / 60);
segons = int(accumsetmana - hores*3600 - minuts*60);
printf "- Total setmana: %02i:%02i:%02i\n",
hores, minuts, segons
accumsetmana = 0;
}
accumtime = 0;
}
else
{
if (work != ignora)
{
split($1, time, ":");
accumtime += time[1]*3600 + time[2]*60 + time[3];
}
}
}