#include <stdio.h>
#include <string.h>
int runnian(int x);
/*距离90年1月1日的天数*/
int date(int x,int y,int z)
{
int m = 0;
int i = 0;
int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
for(i = 1900;i < x;i++)
{
m = m + 365 + runnian(i);
}
for(i = 1;i < y;i++)
{
if(i != 2)
{m = m + a[i - 1];}
if(i == 2)
{
m = m + a[i - 1] + runnian(x);
}
}
m = m + z;
return m;
}
int main()
{
int x = 0; //年;
int y = 0; //月;
int z = 1; //日;
int m = 0; //距离90年1月1日的天数;
int i = 0;
int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int t = 0;
int j = 0;
printf("input date:");
scanf("%d",&x);
for(y = 1;y <= 12;y++)
{
t = date(x,y,1) % 7;
printf(" SUN MON TUS WED THU FRI SAT\n");
for (j = 0; j < t; j++)
{
printf(" ");
}
if (y == 2)
{
for (z = 1; z <= a[y - 1] + runnian(x); z++)
{
printf("%4d", z);
t++;
if (t % 7 == 0)
{
printf("\n");
t = 0;
}
}
}
else
{
for (z = 1; z <= a[y - 1]; z++)
{
printf("%4d", z);
t++;
if (t % 7 == 0)
{
printf("\n");
t = 0;
}
}
}
printf("\n");
}
return 0;
}
int runnian(int x)
{
if((x % 4 == 0 && x % 100 != 0)|| x % 400 == 0 )
{
return 1;
}
else
{
return 0;
}
}