#include // 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; }