77 lines
2.0 KiB
C
77 lines
2.0 KiB
C
#include <stdio.h>
|
|
|
|
void textAusgabe() {
|
|
printf("0 Ende\n"
|
|
"1 Tagesnummer zu einem Datum bestimmen\n"
|
|
"2 Datum zu einer Tagesnummer bestimmen\n");
|
|
}
|
|
|
|
void eingabeDatum(int *tag, int *monat, int *jahr) {
|
|
printf("Gib dein Datum (tt.mm.jjjj) ein: ");
|
|
scanf("%d.%d.%d", tag, monat, jahr);
|
|
}
|
|
|
|
void eingabeTag(int *tag, int *jahr) {
|
|
printf("Gib Tagesnummer und Jahr (nr,jahr) ein: ");
|
|
scanf("%d,%d", tag, jahr);
|
|
}
|
|
|
|
int eingabeWahl() {
|
|
int input;
|
|
printf("Deine Wahl: ");
|
|
scanf("%d", &input);
|
|
return input;
|
|
}
|
|
|
|
int istSchaltjahr(int jahr) {
|
|
return (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0));
|
|
}
|
|
|
|
|
|
int main() {
|
|
int input, tag, monat, jahr, TagImJahr,schalt;
|
|
|
|
int monat_tage[2][13] = {
|
|
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
|
|
{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
|
|
};
|
|
input = 1;
|
|
|
|
do{
|
|
textAusgabe();
|
|
input = eingabeWahl();
|
|
|
|
switch(input) {
|
|
case 0:
|
|
printf("Programm beendet.\n");
|
|
break;
|
|
case 1:
|
|
eingabeDatum(&tag, &monat, &jahr);
|
|
schalt = istSchaltjahr(jahr);
|
|
TagImJahr = 0;
|
|
|
|
for(int i = 1;i<monat;i++) {
|
|
TagImJahr += monat_tage[schalt] [i];
|
|
}
|
|
TagImJahr += tag;
|
|
|
|
printf("%d.%d.%d = %d. Tag im Jahr\n", tag, monat, jahr, TagImJahr);
|
|
|
|
break;
|
|
case 2:
|
|
int i = 1;
|
|
eingabeTag(&TagImJahr, &jahr);
|
|
schalt = istSchaltjahr(jahr);
|
|
tag = TagImJahr;
|
|
|
|
while (tag > monat_tage[schalt][i]) {
|
|
tag -= monat_tage[schalt][i];
|
|
i++;
|
|
}
|
|
monat = i;
|
|
printf(".... %d. Tag im Jahr = %d.%d.%d\n", TagImJahr, tag, monat, jahr);
|
|
|
|
}
|
|
} while (input != 0);
|
|
return 0;
|
|
} |