long int f(int year, int month)
{
if (month<3) return="" year="" -="">3)>
else return year;
}/*f(年,月)=年-1,如月<3;否则,f(年,月)=年*>3;否则,f(年,月)=年*>
long int g(int month)
{
if (month<3) return="" month="" +="">3)>
else return month + 1;
}/*g(月)=月+13,如月<3;否则,g(月)=月+1*>3;否则,g(月)=月+1*>
long int n(int year, int month, int day)
{
return 1461L * f(year, month) / 4 + 153L * g(month) / 5 + day;
}/*N=1461*f(年、月)/4+153*g(月)/5+日*/
int w(int year, int month, int day)
{
return(int)((n(year, month, day) % 7 - 621049L % 7 + 7) % 7);
}/*w=(N-621049)%7(0<><7)*>7)*>
int date[12][6][7];
int day_tbl[][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };
void main()
{
int sw, leap, i, j, k, wd, day;
int year;/*年*/
char title[] = 'SUN MON TUE WED THU FRI SAT';
system('cls');
printf('Please input the year whose calendar you want to know: ');/*输入年*/
scanf('%d%*c', &year);/*输入年份值和掠过值后的回车*/
sw = w(year, 1, 1);
leap = year % 4 == 0 && year % 100 || year % 400 == 0;/*判闰年*/
for (i = 0; i<12;>12;>
for (j = 0; j<6;>6;>
for (k = 0; k<7;>7;>
date[i][j][k] = 0;/*日期表置0*/
for (i = 0; i<12;>12;>
for (wd = 0, day = 1; day <= day_tbl[leap][i];="">=>
{/*将第i+1月的日期填入日期表*/
date[i][wd][sw] = day;
sw = ++sw % 7;/*每星期七天,以0至6计数*/
if (sw == 0) wd++;/*日期表每七天一行,星期天开始新的一行*/
}
printf('\n|==================The Calendar of Year %d =====================|\n|', year);
for (i = 0; i<6;>6;>
{/*先测算第i+1月和第i+7月的最大星期数*/
for (wd = 0, k = 0; k<7; k++)/*日期表的第六行有日期,则wd!="">7;>
wd += date[i][5][k] + date[i + 6][5][k];
wd = wd ? 6 : 5;
printf('%2d %s %2d %s |\n|', i + 1, title, i + 7, title);
for (j = 0; j
{
printf(' ');/*输出四个空白符*/
/*左栏为第i+1月,右栏为第i+7月*/
for (k = 0; k<7;>7;>
if (date[i][j][k])
printf('%4d', date[i][j][k]);
else printf(' ');
printf(' ');/*输出十个空白符*/
for (k = 0; k<7;>7;>
if (date[i + 6][j][k])
printf('%4d', date[i + 6][j][k]);
else printf(' ');
printf(' |\n|');
}
/*scanf('%*c');/*键入回车输出下一个月的日历*/
}
puts('=================================================================|');
getchar();
}
本教程是潭州教育信息技术学院原创编译文章,主要是C语言课程基础教程,如果您想从事这方面行业或者在从事这个行业,要提升自己可以在互联网潭州教育课堂来学习最新的系统的课程。每天晚上开课,潭州教育职业课程体系,是你职业的加油站。潭州教育职业课程有网页平面设计、it编程、信息技术、影视游戏动漫、电商营销、农业种养殖等系列课程;潭州教育,通过互联网手机电脑就可以学习,前沿全国顶级课程。让知识触手可及
不懂的联系小编啦