新手 小秀一下!! --求出某天是某一年的第几天--
/*------------------------------------six★丶terry------------
-----------------------------*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int day = 0;
int month = 0;
int year = 0;
int sum = 0;
int leap = 0;
int i = 0;
do{
/*----------------------------------*/
/*----------输入模块----------------*/
/*----------------------------------*/
i = 0;
printf("请输入年、月、日:用“-”分隔:");
scanf("%d-%d-%d",&year,&month,&day);
fflush(stdin);
/*----------------------------------*/
/*----------判断模块----------------*/
/*----------------------------------*/
if( 0 == year%400 || (0 == year%4 && 0 != year%100))/*判断是不是闰年*/
{
leap = 1;
}
else
{
leap = 0;
}
if(((month == 1 || month ==3 || month == 5 || month ==7 ||month == 8 || month ==10 || month == 12 ) && day <= 31 && 0 <=day )
|| (( month ==4 || month == 6 || month ==9 ||month == 11 ) && day <= 30 && 0 <=day )
|| (month == 2 &&(leap == 0 && day <= 28 && 0 <=day ) || (leap == 1 && day <= 29 && 0 <=day )))
{
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;
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;
case 11:
sum = 304;
break;
case 12:
sum = 334;
break;
default:
printf("月份错误!!!");
i = 1;
break;
}
sum = sum + day; /*再加上某天的天数*/
if(leap == 1 && month > 2)
{
sum++;
}
}
else
{
printf("您的输入有错误!!!\n请重新输入!!\n");
i = 1;
}
}while(i);
printf("%d月%d日是%d年的第%d天\n",month,day,year,sum);
system("pause");
return 0;
}