scripts/hores.awk
author llbatlle@comanegra
Fri, 01 Apr 2011 10:06:32 +0200
changeset 21 5dababf1cb7d
parent 19 39a78ed9bf03
permissions -rwxr-xr-x
Milloro l'escript que compta hores.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     1
#!/home/llbatlle/.nix-profile/bin/awk -f
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     2
#
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     3
# Entrada: tt -t
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     4
#
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     5
# Distingeix 'fora' i 'dinar' com a coses que no són de la feina
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     6
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     7
BEGIN {
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     8
    fora="fora";
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
     9
    ignora="dinar";
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    10
    FS=" "
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    11
}
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    12
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    13
{
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    14
    daystring = substr($3, 2);
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    15
    work = $2;
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    16
21
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    17
    if (work == fora || substr(work,1,5) == "fora,")
19
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    18
    {
21
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    19
        if (work == "fora,malalt")
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    20
            accumtime = 8*3600
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    21
19
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    22
        hores = int(accumtime / 3600);
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    23
        minuts = int((accumtime  - hores*3600) / 60);
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    24
        segons = int(accumtime  - hores*3600 - minuts*60);
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    25
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    26
        plegant = substr($4, 1, length($4)-1);
21
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    27
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    28
        split(daystring, diaplegar, "-");
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    29
        split(plegant, horaplegar, ":");
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    30
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    31
        stamp = mktime(diaplegar[1] " " diaplegar[2] " " diaplegar[3] " " horaplegar[1] \
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    32
            " " horaplegar[2] " " horaplegar[3] " CEST");
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    33
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    34
        diasetmana = strftime("%A", stamp)
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    35
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    36
        printf "%-10s %s: %02i:%02i:%02i (plegant a les %s)\n",
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    37
            diasetmana, daystring, hores, minuts, segons, plegant;
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    38
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    39
        accumsetmana += accumtime;
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    40
        if (diasetmana == "divendres")
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    41
        {
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    42
            hores = int(accumsetmana / 3600);
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    43
            minuts = int((accumsetmana  - hores*3600) / 60);
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    44
            segons = int(accumsetmana  - hores*3600 - minuts*60);
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    45
            printf "- Total setmana: %02i:%02i:%02i\n",
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    46
                hores, minuts, segons
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    47
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    48
            accumsetmana = 0;
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    49
        }
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    50
5dababf1cb7d Milloro l'escript que compta hores.
llbatlle@comanegra
parents: 19
diff changeset
    51
19
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    52
        accumtime = 0;
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    53
    }
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    54
    else
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    55
    {
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    56
        if (work != ignora)
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    57
        {
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    58
            split($1, time, ":");
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    59
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    60
            accumtime += time[1]*3600 + time[2]*60 + time[3];
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    61
        }
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    62
    }
39a78ed9bf03 Adding a simple script I use to calculate worked hours per day
llbatlle@comanegra
parents:
diff changeset
    63
}