2008-10-27
来个总的,分月的就是在加上一个判断函数。
同意楼上的,总问别人是不会提高的。
#include
/*********************************
days:计算与标准日期之间的天数差值
**********************************/
int monthsh(int year,int month,int leap,int ch)/*共七个参数ch-与标准年间的天数差值;*/
{
int sum=0,total=0,i=0,j=0,weak=0,days=0,wdays;
char *weakday[7]={"一\t","二\t","三\t","四\t","五\t","六\t","日\n"};
switch(month)
{
case 1: sum=0; total=31; break;
case 2: sum=31; total=28+leap; break;
case 3: sum=59+leap; total=31; break;
case 4: sum=90+leap; total=30; break;
case 5: sum=120+leap; total=31; break;
case 6: sum=151+leap; total=30; break;
case 7: sum=181+leap; total=31; break;
case 8: sum=212+leap; total=31; break;
case 9: sum=243+leap; total=30; break;
case 10: sum=273+leap; total=31; break;
case 11: sum=304+leap; total=30; break;
case 12: sum=334+leap; total=31; break;
default: printf("data error"); break;
}
/*显示输出*/
printf("%d-%d\n",year,month);
for(i=0; i=2000)\nyear=");
scanf("%d",&year);
/*判断输入是否在许可范围内*/
if(!(year>=1980))
{
printf("Input error, please re-entry!\n");
goto restart;
}
/*判断输入是否在许可范围内*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是否闰年*/
leap=1;
for(nyear=syear; nyear<=year; nyear++)
{
if((nyear-1)%400==0||((nyear-1)%100!=0))
ch+=366;
else
ch+=365;
}
/*文件头*/
for(month=1;month<=12;month++)
{
monthsh(year,month,leap,ch);
printf("\n----------------------------------------------------\n");
}
system("pause");
}
。