Kalender in C für DOS
Hi, ich hab mal einen Kalender von 1900 - 2099 programmiert.
(Alle Programmierer mögen mir folgendes verzeihen)
#include
#include
void main(void)
{
int j;
int ja;
int jz;
int jm;
int jaanf;
int tag;
int m;
int t;
int monanf;
int tagm;
for(;
{
printf(„Bitte um das Jahr, Monat und Tag: \n“);
scanf("%d:%d:%d",&j,&m,&t);
jz = j - 1900;
jm = jz % 28;
switch (jm)
{
case 0: ja = 0; break;
case 1: ja = 2; break;
case 2: ja = 3; break;
case 3: ja = 4; break;
case 4: ja = 5; break;
case 5: ja = 0; break;
case 6: ja = 1; break;
case 7: ja = 2; break;
case 8: ja = 3; break;
case 9:ja = 5; break;
case 10:ja = 6; break;
case 11:ja = 0; break;
case 12:ja = 1; break;
case 13:ja = 3; break;
case 14:ja = 4; break;
case 15:ja = 5; break;
case 16:ja = 6; break;
case 17:ja = 1; break;
case 18:ja = 2; break;
case 19:ja = 3; break;
case 20:ja = 4; break;
case 21:ja = 6; break;
case 22:ja = 0; break;
case 23:ja = 1; break;
case 24:ja = 2; break;
case 25:ja = 4; break;
case 26:ja = 5; break;
case 27:ja = 6; break;
default: ja = 99;
}
switch (m)
{
case 1: monanf = 0; break;
case 2: monanf = 31; break;
case 3: monanf = 59; break;
case 4: monanf = 90; break;
case 5: monanf = 120; break;
case 6: monanf = 151; break;
case 7: monanf = 181; break;
case 8: monanf = 212; break;
case 9: monanf = 243; break;
case 10: monanf = 273; break;
case 11: monanf = 304; break;
case 12: monanf = 334; break;
}
tag = ja + monanf + t -1;
/* printf („tag: %d, monanf: %d, monat: %d\n“,tag, monanf,m);*/
if ((jz % 4) == 0)
{
if (m > 2)
tag++;
}
/* printf („tag: %d\n“,tag);*/
tagm = tag % 7;
switch (tagm)
{
case 1:
printf(„Montag, Depp!\n“);
break;
case 2:
printf(„Dienstag, Depp!\n“);
break;
case 3:
printf(„Mittwoch, Depp!\n“);
break;
case 4:
printf(„Donnerstag, Depp!\n“);
break;
case 5:
printf(„Freitag, Depp!\n“);
break;
case 6:
printf(„Samstag, Depp!\n“);
break;
case 0:
printf(„Sonntag, Depp!\n“);
break;
default:
printf(„Weisst, wasd willst, Depp!\n“);
break;
}
}
}