56 lines
1.9 KiB
C
56 lines
1.9 KiB
C
#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;
|
|
} |