#include int tage[2][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, // kein Schaltjahr { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } // Schaltjahr }; /* Schaltjahr ja/nein: 0 = kein Schaltjahr, 1 = Schaltjahr */ int schaltjahr(int jahr) { return jahr % 4 == 0 && jahr % 100 != 0 || jahr % 400 == 0; } /* Tag im Jahr aus Monat und Tag bestimmen */ int tag_im_jahr(int jahr, int monat, int tag) { int i; for (i = 1; i < monat; i++) tag += tage[schaltjahr(jahr)][i]; return tag; } /* Monat und Tag aus Tag im Jahr bestimmen */ void monat_tag(int jahr, int tagImJahr, int *pMonat, int *pTag) { int i; for (i = 1; tagImJahr > tage[schaltjahr(jahr)][i]; i++) tagImJahr -= tage[schaltjahr(jahr)][i]; *pMonat = i; *pTag = tagImJahr; } int main() { int heute; int tag, monat; heute = tag_im_jahr(2021, 1, 27); printf ("Der 27.01. ist der %d. Tag des Jahres 2021.\n", heute); monat_tag(2020, 100, &monat, &tag); printf("Der %d. Tag im Jahr 2020 war der %d.%d.\n", 100, tag, monat); return 0; }