#include <stdio.h>

// Definition einer Struktur zur Speicherung von Zeitangaben
struct zeit {
    int tag; // Tage
    int std; // Stunden
    int min; // Minuten
    int sek; // Sekunden
};

// Funktion: Wandelt eine Zeitstruktur in die Gesamtanzahl an Sekunden um
unsigned long zeit_in_sek(struct zeit z) {
    // 1 Tag = 86400 Sekunden, 1 Stunde = 3600 Sekunden, 1 Minute = 60 Sekunden
    return z.tag * 86400 + z.std * 3600 + z.min * 60 + z.sek;
}

// Funktion: Wandelt eine Anzahl von Sekunden in eine Zeitstruktur um
struct zeit sek_in_zeit(unsigned long sek) {
    struct zeit z;
    z.tag = sek / 86400;      // Ganze Tage berechnen
    sek %= 86400;             // Restsekunden nach Tagen
    z.std = sek / 3600;       // Ganze Stunden berechnen
    sek %= 3600;              // Restsekunden nach Stunden
    z.min = sek / 60;         // Ganze Minuten berechnen
    z.sek = sek % 60;         // Restsekunden nach Minuten
    return z;
}

int main() {
    struct zeit z1, z2, summe;         // Zeitstrukturen für die beiden Eingaben und die Summe
    unsigned long s1, s2, sgesamt;     // Variablen für die Sekundenwerte

    // Eingabe der ersten Zeit im Format tt.hh.mm.ss
    printf("Gib 1. Zeit ein (tt.hh.mm.ss): ");
    scanf("%d.%d.%d.%d", &z1.tag, &z1.std, &z1.min, &z1.sek);

    // Eingabe der zweiten Zeit im gleichen Format
    printf("Gib 2. Zeit ein (tt.hh.mm.ss): ");
    scanf("%d.%d.%d.%d", &z2.tag, &z2.std, &z2.min, &z2.sek);

    // Umwandlung der beiden Zeiten in Sekunden
    s1 = zeit_in_sek(z1);
    s2 = zeit_in_sek(z2);

    // Addition der Sekundenwerte
    sgesamt = s1 + s2;

    // Umwandlung der Gesamtsumme der Sekunden zurück in eine Zeitstruktur
    summe = sek_in_zeit(sgesamt);

    // Ausgabe des Ergebnisses in Tagen, Stunden, Minuten, Sekunden und Gesamtsekunden
    printf("= %d Tage, %d:%d:%d; %lu Gesamtsekunden\n",
           summe.tag, summe.std, summe.min, summe.sek, sgesamt);

    return 0;
}
