用c语言编写万年历
- 提问者网友:痞子房西
- 2021-02-19 01:30
- 二级知识专家网友:初心未变
- 2021-02-19 01:59
- 1楼网友:虚伪的现实
- 2021-02-19 03:08
#include <stdio.h> #define n 7
void print(int day,int tian) { int a[n][n],i,j,sum=1; for(i=0,j=0;j<7;j++) { if(j<day) printf(" "); else { a[i][j]=sum; printf("%3d ",sum++); } } printf("\n"); for(i=1;sum<=tian;i++) { for(j=0;sum<=tian&&j<7;j++) { a[i][j]=sum; printf("%3d ",sum++); } printf("\n"); } }
int duo(int year) { if(year%4==0&&year%100!=0||year%400==0) return 1; else return 0; } int rili(int year,int month) { int day,tian,preday,strday;
//printf("\n"); printf("%d月 %d年\n",month,year); printf("sun mon tue wed thu fri sat\n"); switch(month) { case 1: tian=31; preday=0; break; case 2: tian=28; preday=31; break; case 3: tian=31; preday=59; break; case 4: tian=30; preday=90; break; case 5: tian=31; preday=120; break; case 6: tian=30; preday=151; break; case 7: tian=31; preday=181; break; case 8: tian=31; preday=212; break; case 9: tian=30; preday=243; break; case 10: tian=31; preday=273; break; case 11: tian=30; preday=304; break; default: tian=31; preday=334; } if(duo(year)&&month>2) preday++; if(duo(year)&&month==2) tian=29;
day=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+preday+1)%7;
print(day,tian); }
int main() { int year,month,con=1; while(con) { printf("请输入你想打印的年份:"); scanf("%d",&year); while(1) { printf("请输入你想打印的月份:"); scanf("%d",&month); if(month>12||month<1) printf("请输入正确的月份!!"); else break; } rili(year,month);
printf("是否继续 1或者0"); scanf("%d",&con); } getch(); }