通过输入年份和月份输出该年该月的日历
C代码如下
#include int main()
{int m,d,monthmax,y,i,j;while(1){printf("请输入年份y:");scanf("%d", &y);printf("请输入月份m:");scanf("%d", &m);if(y%4==0||(y%100==0&&y%400==0)){if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)monthmax=31;if(m==2)monthmax=29;if(m==4||m==6||m==9||m==11)monthmax=30;}if(y%4!=0){if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)monthmax=31;if(m==2)monthmax=28;if(m==4||m==6||m==9||m==11)monthmax=30;}//基姆拉尔森计算公式取得一号周几if(m==1||m==2){m+=12; y--;}d=(2+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;if(d==0){d=7;}{{if(m==13){printf("公元%d+1年 第1月日历\n",y);}if(m==14){printf("公元%d+1年 第2月日历\n",y);}if(m!=13&&m!=14){printf("公元%d年 第%d月日历\n",y,m);}}printf(" 7 1 2 3 4 5 6\n");if(d==7){for(i=1; i<=3*(d-1); i++){printf(" ");}printf("\n");}else{for(i=1; i<=3*d; i++){printf(" ");}}for(j=1; j<=monthmax; j++){printf("%3d", j);if((j+d)%7==0){printf("\n");}if(j==monthmax){printf("\n");}}printf("\n");}}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
