diff --git a/wochentag.c b/wochentag.c new file mode 100644 index 0000000..e4abc3d --- /dev/null +++ b/wochentag.c @@ -0,0 +1,49 @@ +#include + +int main() { + + // Variablen definieren + int jh_koeff[4] = {4,2,0,5}; + int monat_koeff[12] = {2,5,5,2,3,6,1,4,0,2,5,0}; + int tag = 0; + int monat = 0; + int jahr = 0; + int schaltjahr = 0; + + printf("Geben Sie ein Datum ein tag, monat, jahr: \n"); //eingabe + scanf("%d.%d.%d.", &tag, &monat,&jahr); + + int jh = jahr / 100; // die vorderen beiden Ziffern der Jahreszahl + int ja = jahr % 100; // die hinteren beiden Ziffern der Jahreszahl + + // geschaut ob es ein schaltjahr ist + if(monat > 2){ + schaltjahr = 0; + } + else { + if (jahr % 400 == 0) { + schaltjahr = 1; + } + else{ + if(jahr % 100 == 0){ + schaltjahr = 0; + } + else{ + if(jahr % 4 == 0){ + schaltjahr = 1; + } + else{ + schaltjahr = 0; + } + } + } + } + + int wochentag = (tag + monat_koeff[monat -1] - schaltjahr + jh_koeff[jh%4] + ja + ja/4) % 7; // formel um den wochentag auszurechnen + + const char *tage[] = {"Sonntag", "Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"}; + + printf("Der %d.%d.%d war ein %s.\n",tag, monat, jahr ,tage[wochentag]); // ausgabe vom Wochentag + + return 0; +} \ No newline at end of file