首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么求出这是一年中的第几天

2012-03-22 
如何求出这是一年中的第几天从键盘获取年月日,然后判断是否为闰年,判断这个日期是这年中的第几天。下面是我

如何求出这是一年中的第几天
从键盘获取年月日,然后判断是否为闰年,判断这个日期是这年中的第几天。
下面是我写的一点点程序,但是我不明白向下应该在怎么样来实现了,希望高手指点。
#include   "stdio.h "
void   main()
{
int   year,month,day,num;
printf( "请输入年份、月份和日期 ");
scanf( "%d%d%d ",&year,&month,&day);
printf( "\n您输入的%d年   %d月   %d日\n ",year,month,day);
if((year   %   4   ==   0   &&   year   %   100   !=0)   ||   (year   %   400==0))
{
switch   (month)
{
case   1:

printf( "这日期是这一年的第%d ",);
break;

}

printf( "是闰年\n ");
}
else  
{printf( "不是\n ");}

}

[解决办法]
就这样 case 1
case 2: day = day + 31;
case 3: day = day +31 + 28;
....
....
case 12: .....
然后再判断是不是闰年且月数是否大于2,如果是 则day++;

[解决办法]
int monthdays[] = {31,28,31,30,...};
if(闰年)monthdays[1]=29;
for(i=0,num=0;i <month;i++)
num += monthdays[i];
[解决办法]
#include <stdio.h>

main()
{
int iYear,iMonth,iDay,iSum,iLeap;
printf( "Please enter the year,month,day\n ");
scanf( "%d,%d,%d ",&iYear,&iMonth,&iDay);

switch(iMonth)
{
case 1:iSum = 0 ; break ;
case 2:iSum = 31 ; break ;
case 3:iSum = 31 + 28 ; break ;
case 4:iSum = 31 + 28 + 31 ; break;
case 5:iSum = 31 + 28 + 31 + 30 ; break ;
case 6:iSum = 31 + 28 + 31 + 30 + 31 ; break;
case 7:iSum = 31 + 28 + 31 + 30 + 31 + 30 ; break ;
case 8:iSum = 31 + 28 + 31 + 30 + 31 + 30 + 31 ; break ;
case 9:iSum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 ; break ;
case 10:iSum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 ; break ;
case 11:iSum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 ; break ;
case 12:iSum = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 30 + 31 ; break ;
}

iSum = iSum + iDay ;

if(iYear % 4 ==0 && iYear % 100 != 0 || iYear % 4 == 0 && iYear % 400 == 0)
iLeap = 1 ;
else
iLeap = 0 ;
if(iLeap == 1 && iMonth > = 2)
iSum ++;
printf( "The total days is %d\n ",iSum) ;

}
[解决办法]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{ int year,month,day;
int sumdays=0;
int i;
int mdays[] = {31,28,31,30,31,30,31,30,31,30,31,30};
scanf( "%d %d %d ",&year,&month,&day);
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
mdays[1] = 29;
for( i = 1; i < month; i++)
{
sumdays += mdays[i-1];
}
sumdays += day;
printf( "%d ",sumdays);
}
else
{
for(i = 1; i < month; i++)
{
sumdays += mdays[i-1];
}
sumdays += day;
printf( "%d ",sumdays);
}
system( "PAUSE ");
return 0;
}
[解决办法]
main()
{int *sinmonth1,a[]={31,28,31,30,31,30,31,31,30,31,30,31},
*sinmonth2,b[]={31,29,31,30,31,30,31,31,30,31,30,31};


int i,k,year,month,day,days=0,dayses;
sinmonth1=a;
sinmonth2=b;
scanf( "%d/%d/%d ",&year,&month,&day);
if(year%4==0&&year%100!=0||year%4==0&&year%400==0)k=1;
else k=0;
switch(k)
{case 0:
for(i=0;i <month-1;i++)
{days=days+*(sinmonth1+i);}
dayses=days+day;
printf( "the number is %d\n ",dayses);
break;
case 1:
for(i=0;i <month-1;i++)
{days=days+*(sinmonth2+i);}
dayses=days+day;
printf( "it is a leap year ");
printf( "the number is %d\n ",dayses);
break;
}
}

热点排行