用c语言编写万年历
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
else goto loop2;
loop1: for(i=1901;i<year;i++)
{
if(i%400==0||(i%4==0&&i%100!=0))
n++;
}
days=(year-1901-n)*365+n*366;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("一年内只能有12个月!请重新输入!\n");goto redo;
case 3:printf("\t 五月 %d\t\t 六月 %d\n",year,year);break;
case 4:printf("\t 七月 %d\t\t 八月 %d\n",year,year);break;
goto redo;
}
if(month==6&&(day>=31||day<=0))
{
printf("输入有误!6月只能有30天!\n");
goto redo;
}
if(month==7&&(day>=32||day<=0))
{
printf("输入有误!7月只能有31天!\n");
while(yearstart<year)
{
if(leapyear(yearstart)!=0)
leapsum++;
yearstart++;
}
return 366*leapsum+365*(year-leapsum); /*不包括今天的*/
{
if(j%7==0)
{
j=0;i++;
}
everyday[i][j++]=day;
day++;
yeardays++;
}
i=0;j=7;
for(temp_i=0;temp_i<(yeardays%7);temp_i++)
int leapyear(int year); /*闰年的定义*/
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31,29};/*每月天数的判断*/
int everyday[6][14];
{
everyday[0][j++]=0;
}
day=1;
if(leapyear(year)&&temp==1)
while(day<=month[13])
{
if(j%14==0)
{
j=7;i++;
{
if (j%14==0)
{
j=7;i++;
}
everyday[i][j++]=day;
day++;
yeardays++;
}
2012-6-6 16:17 愤怒的小马ma | 三级
#include <stdio.h>
void main()
{
int year,month,day,days,sum,i,n=0,a;
char c;
redo: printf("请输入年/月/日(例如:2010/1/1):\n");
goto redo;
}
if(month==10&&(day>=32||day<=0))
{
printf("输入有误!10月只能有31天!\n");
goto redo;
}
if(month==11&&(day>=31||day<=0))
{
for (i=0;i<6;i++)
{
for(j=0;j<14;j++)
{
if(everyday[i][j]!=0)
printf("%-4d",everyday[i][j]);
else
printf(" ");
case 5:printf("\t 九ar);break;
case 6:printf("\t 十一月 %d\t\t 十二月 %d\n",year,year);break;
{
if(day>=30||day<=0)
{
printf("输入有误!%d年是闰年,二月只能有29天!\n",year);
goto redo;
}
}
else if(day>=29||day<=0)
{
goto redo;
}
if(month==8&&(day>=32||day<=0))
{
printf("输入有误!8月只能有31天!\n");
goto redo;
}
if(month==9&&(day>=31||day<=0))
{
printf("输入有误!9月只能有30天!\n");
}
everyday[i][j++]=day;
day++;
yeardays++;
}
else
while(day<=month[2*temp]) /*偶数输出*/
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
scanf("%d/%d/%d",&year,&month,&day);
if(month==1&&(day>=32||day<=0))
{
printf("输入有误!1月只能有31天!\n");
goto redo;
}
if(month==2)
{
if((year%400==0)||(year%4==0&&year%100!=0))
#include <stdio.h>
void main()
{
int i,j,temp,temp_i,day,year;
long int yeardays;
long int sumday(int year); /*所有天数求和 ,不包括今天的 */
return(1);
else
return (0);
}
long int sumday(int year) /*每年天数的判断*/
{
int yearstart=1,leapsum=0;
if(j==6)
printf(" ");
}
printf("\n");
}
}
}
int leapyear(int year) /*闰年的判断*/
{
if((year%4==0&&year%100!=0)||year%400==0)
printf("输入有误!11月只能有30天!\n");
goto redo;
}
if(month==12&&(day>=32||day<=0))
{
printf("输入有误!12月只能有31天!\n");
goto redo;
}
if(month>=1&&month<=12)
goto redo;
}
if(month==4&&(day>=31||day<=0))
{
printf("输入有误!4月只能有30天!\n");
goto redo;
}
if(month==5&&(day>=32||day<=0))
{
printf("输入有误!5月只能有31天!\n");
{
if(year%400==0||(year%4==0&&year%100!=0))
printf("%d年是闰年。\n",year);
else printf("%d年是平年。\n",year);
}
if(year>=1901) goto loop1;
printf("输入有误!%d年是平年,二月只能有28天!\n",year);
goto redo;
}
}
if(month==3&&(day>=32||day<=0))
{
printf("输入有误!3月只能有31天!\n");
printf ("please enter a year:\n");
scanf("%d",&year);
yeardays=sumday(year);
for(temp=1;temp<=6;temp++)
{ getchar();
for(i=0;i<6;i++)
for(j=0;j<14;j++)
} /*控制两栏输出*/
printf("日 一 二 三 四 五 六 日 一 二 三 四 五 六 \n");
everyday[i][j]=0; /*天数初始化*/
switch(temp)
{
case 1:printf("\t 一月 %d\t\t 二月 %d\n",year,year);break;
case 2:printf("\t 三月 %d\t\t 四月 %d\n",year,year);break;
i=0;j=0;
for(temp_i=0;temp_i<(yeardays%7);temp_i++)
{
everyday[0][j++]=0;
}
day=1;
while(day<=month[2*temp-1]) /*奇数输出*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
else goto loop2;
loop1: for(i=1901;i<year;i++)
{
if(i%400==0||(i%4==0&&i%100!=0))
n++;
}
days=(year-1901-n)*365+n*366;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("一年内只能有12个月!请重新输入!\n");goto redo;
case 3:printf("\t 五月 %d\t\t 六月 %d\n",year,year);break;
case 4:printf("\t 七月 %d\t\t 八月 %d\n",year,year);break;
goto redo;
}
if(month==6&&(day>=31||day<=0))
{
printf("输入有误!6月只能有30天!\n");
goto redo;
}
if(month==7&&(day>=32||day<=0))
{
printf("输入有误!7月只能有31天!\n");
while(yearstart<year)
{
if(leapyear(yearstart)!=0)
leapsum++;
yearstart++;
}
return 366*leapsum+365*(year-leapsum); /*不包括今天的*/
{
if(j%7==0)
{
j=0;i++;
}
everyday[i][j++]=day;
day++;
yeardays++;
}
i=0;j=7;
for(temp_i=0;temp_i<(yeardays%7);temp_i++)
int leapyear(int year); /*闰年的定义*/
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31,29};/*每月天数的判断*/
int everyday[6][14];
{
everyday[0][j++]=0;
}
day=1;
if(leapyear(year)&&temp==1)
while(day<=month[13])
{
if(j%14==0)
{
j=7;i++;
{
if (j%14==0)
{
j=7;i++;
}
everyday[i][j++]=day;
day++;
yeardays++;
}
2012-6-6 16:17 愤怒的小马ma | 三级
#include <stdio.h>
void main()
{
int year,month,day,days,sum,i,n=0,a;
char c;
redo: printf("请输入年/月/日(例如:2010/1/1):\n");
goto redo;
}
if(month==10&&(day>=32||day<=0))
{
printf("输入有误!10月只能有31天!\n");
goto redo;
}
if(month==11&&(day>=31||day<=0))
{
for (i=0;i<6;i++)
{
for(j=0;j<14;j++)
{
if(everyday[i][j]!=0)
printf("%-4d",everyday[i][j]);
else
printf(" ");
case 5:printf("\t 九ar);break;
case 6:printf("\t 十一月 %d\t\t 十二月 %d\n",year,year);break;
{
if(day>=30||day<=0)
{
printf("输入有误!%d年是闰年,二月只能有29天!\n",year);
goto redo;
}
}
else if(day>=29||day<=0)
{
goto redo;
}
if(month==8&&(day>=32||day<=0))
{
printf("输入有误!8月只能有31天!\n");
goto redo;
}
if(month==9&&(day>=31||day<=0))
{
printf("输入有误!9月只能有30天!\n");
}
everyday[i][j++]=day;
day++;
yeardays++;
}
else
while(day<=month[2*temp]) /*偶数输出*/
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
scanf("%d/%d/%d",&year,&month,&day);
if(month==1&&(day>=32||day<=0))
{
printf("输入有误!1月只能有31天!\n");
goto redo;
}
if(month==2)
{
if((year%400==0)||(year%4==0&&year%100!=0))
#include <stdio.h>
void main()
{
int i,j,temp,temp_i,day,year;
long int yeardays;
long int sumday(int year); /*所有天数求和 ,不包括今天的 */
return(1);
else
return (0);
}
long int sumday(int year) /*每年天数的判断*/
{
int yearstart=1,leapsum=0;
if(j==6)
printf(" ");
}
printf("\n");
}
}
}
int leapyear(int year) /*闰年的判断*/
{
if((year%4==0&&year%100!=0)||year%400==0)
printf("输入有误!11月只能有30天!\n");
goto redo;
}
if(month==12&&(day>=32||day<=0))
{
printf("输入有误!12月只能有31天!\n");
goto redo;
}
if(month>=1&&month<=12)
goto redo;
}
if(month==4&&(day>=31||day<=0))
{
printf("输入有误!4月只能有30天!\n");
goto redo;
}
if(month==5&&(day>=32||day<=0))
{
printf("输入有误!5月只能有31天!\n");
{
if(year%400==0||(year%4==0&&year%100!=0))
printf("%d年是闰年。\n",year);
else printf("%d年是平年。\n",year);
}
if(year>=1901) goto loop1;
printf("输入有误!%d年是平年,二月只能有28天!\n",year);
goto redo;
}
}
if(month==3&&(day>=32||day<=0))
{
printf("输入有误!3月只能有31天!\n");
printf ("please enter a year:\n");
scanf("%d",&year);
yeardays=sumday(year);
for(temp=1;temp<=6;temp++)
{ getchar();
for(i=0;i<6;i++)
for(j=0;j<14;j++)
} /*控制两栏输出*/
printf("日 一 二 三 四 五 六 日 一 二 三 四 五 六 \n");
everyday[i][j]=0; /*天数初始化*/
switch(temp)
{
case 1:printf("\t 一月 %d\t\t 二月 %d\n",year,year);break;
case 2:printf("\t 三月 %d\t\t 四月 %d\n",year,year);break;
i=0;j=0;
for(temp_i=0;temp_i<(yeardays%7);temp_i++)
{
everyday[0][j++]=0;
}
day=1;
while(day<=month[2*temp-1]) /*奇数输出*/