#include 〈stdio.h〉
main()
{
for(;;)
{
int year,month,a,b,c,m,n=28;/*定义变量*/
long e;
printf(\"请输入年份\");
scanf(\"%d”,&year);
e=year;
e——; /*前一年*/
e=(e*365+e/4)%7; /*计算这一年的第一天是星期几*/
m=e; /*把第一天的日期赋给m*/
if((year%4==0)||(year%100!=0)&&(year%400!=0))/*如果是闰年*/
n++;
printf(\"%d的日历:\",year);
for(month=1;month<=12;month++)
{
if(month==1||month==3||month==5||month==7||month==8|month==10||month==12)/*这几个月每个月都是31天*/
{
c=0;
printf(”\\n\");
printf(” %d月 \\n”,month);
printf(\" 日 一 二 三 四 五 六\\n”);
for(b=1;b〈=m;b++)
|{
c++;
printf(” \");/*从星期日开始到这个月开始的那天前都是空的*/
}
for(a=1;a〈=31;a++)
{
c++;
if(c%7—1==0&&c!=1)/*判断一行是否已排满,满了就要换行*/
printf(”\\n”);
if(a〈10) /*如果是小于10,空一格,大于10,前后空*/
printf(” \");
printf(” %d ”,a);
m++;
if(m==7)/*一行排满,开始换行.(指的是这个月的最后一行)*/
m=0;
}
printf(”\\n\");
}
else
{
if(month==4||month==6||month==9||month==11||month==2)
{
if(month==2)/*判断2月份*/
{
c=0;
printf(”\\n”);
printf(\" %d月 \\n\",month);
printf(\" \");
printf(\" 日 一 二 三 四 五 六\\n\");
for(b=1;b<=m;b++)
{
c++;
printf(\" \");
}
for(a=1;a<=n;a++)
{
c++;
if(c%7-1==0&&c!=1)
printf(”\\n\");
if(a<10)
printf(\" \");
printf(” %d \",a);
m++;
if(m==7)
m=0;
}
printf(”\\n”);
}
else
{
c=0;
printf(”\\n\");
printf(\" %d月 \\n\
printf(” 日 一 二 三 四 五 六\\n”);
for(b=1;b<=m;b++)
{
c++;
printf(” \");
}
for(a=1;a〈=30;a++)
{
c++;
if(c%7—1==0&&c!=1)
printf(\"\\n”);
if(a<10)
printf(” \");
printf(\" %d ”,a);
m++;
if(m==7)
m=0;
}
printf(\"\\n”);}
}
}
}
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务