帮忙给个思路

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:34:03
输入一个日期 再给一个计算天数 比如
2008/08/08 231天
计算2008/08/08的前231天的日期是多少

思路就是先把每个月天数列出来,如果是闰年且月份>2,就在结果上加一天。下面是代码,你自己看看把。
main()
{
int year,month,day,i=0,n=0;
printf("Please input year.month.day\n");
loop:
scanf("%d.%d.%d",&year,&month,&day);
if(month<=0||month>12||day<=0||day>31)
{
printf("Data error!Please input again.\n");
goto loop;
}
switch(month)
{
case 1:n=0;break;
case 2:n=31;break;
case 3:n=59;break;
case 4:n=90;break;
case 5:n=120;break;
case 6:n=151;break;
case 7:n=181;break;
case 9:n=243;break;
case 10:n=273;break;
case 11:n=304;break;
case 12:n=334;
}
n+=day;
if(year%400==0||(year%4==0&&year%100!=0))
i=1;
else
i=0;
if(i==1&&month>2)n++;
printf("It is the %dth day.",n);
}

在VB 中 可以直接相减

二楼的方法很好。是个高手。