| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 974 人关注过本帖
标题:[原创]新手在本站的第一个原创
取消只看楼主 加入收藏
yangjun33
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-27
收藏
 问题点数:0 回复次数:2 
[原创]新手在本站的第一个原创
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: yangjun33 E-mail:ydejun02@163.com QQ:50423417
*/ 时间: 2007-9-6 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------


大家好,第一次到本论坛发帖子,以前都只是看。今天在网上看到个题目是:输入自己的生日 和 现在的 日期。求
到现在为止的总天数。小弟是新手,写了下面这么长的一段,希望来个高手评价下,并且给出优化方案。小弟不胜感
激。第一次发帖子,如果能得到大家的帮助,我会踊跃发的。



/*输入你的生日和现在的日期格式:1988/09/20,2007/09/05 后输出到现在为止的天数 */


main()
{
int year1,moth1,day1,sum1,leap1;
int year2,moth2,day2,sum2,leap2;
int i,leap3=0,sum3,sum4,sum;
scanf("%d/%d/%d,%d/%d/%d",&year1,&moth1,&day1,&year2,&moth2,&day2);
switch(moth1)
{
case 1:sum1=365;break;
case 2:sum1=334;break;
case 3:sum1=306;break;
case 4:sum1=275;break;
case 5:sum1=245;break;
case 6:sum1=214;break;
case 7:sum1=184;break;
case 8:sum1=153;break;
case 9:sum1=122;break;
case 10:sum1=92;break;
case 11:sum1=61;break;
case 12:sum1=31;break;
default:printf("error1\n");
}

sum1=sum1-day1;
if((year1/4==0&&year1/100!=0)||year1/400==0)
leap1=1;
else leap1=0;
if(leap1==1&&moth1<=2)
sum1--; /*计算出剩下生日后在这1年还剩下多少天*/

switch(moth2)
{
case 1:sum2=0;break;
case 2:sum2=31;break;
case 3:sum2=59;break;
case 4:sum2=90;break;
case 5:sum2=120;break;
case 6:sum2=151;break;
case 7:sum2=181;break;
case 8:sum2=212;break;
case 9:sum2=243;break;
case 10:sum2=273;break;
case 11:sum2=304;break;
case 12:sum2=334;break;
default:printf("error2\n");
}
sum2=sum2+day2;
if((year2/4==0&&year2/100!=0)||year2/400==0)
leap2=1;
else leap2=0;
if(leap2==1&&moth2>=2)
sum2++; /*计算出现在的日期在本年过了多少天*/


sum3=((year2)-(year1)-1)*365;/*计算出生日年到本年经过了几年的天数*/

sum=sum1+sum2+sum3;/*生日年剩下的天数+生日年到本年的天数+本年已经过了的天数*/
for(i=year1++;i<=year2--;i++)
{if((i/4==0&&i/100!=0)||i/400==0)
leap3++;
}
sum=sum+leap3; /*在加上生日年和本年之间的闰年天数,有几个闰年加几*/
printf("sum=%d",sum);
}

搜索更多相关主题的帖子: 生日 中国 编程论坛 
2007-09-06 00:14
yangjun33
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-27
收藏
得分:0 

沙发自己座。

2007-09-06 00:19
yangjun33
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-8-27
收藏
得分:0 
首先谢谢各位的回复。
1、第一个问题:这几年中的闰年在源码中已经有计算了啊
for(i=year1++;i<=year2--;i++)
{if((i/4==0&&i/100!=0)||i/400==0)
leap3++;
}
sum=sum+leap3; /*在加上生日年和本年之间的闰年天数,有几个闰年加几*/
printf("sum=%d",sum);

2、对于7楼的大虾说是错误的请详细说明。(本人调试运行过)
3、对于10的大虾说的很对,刚开始的时候我也想函数化,然后在调用。或是文件化。谢谢
2007-09-06 19:42
快速回复:[原创]新手在本站的第一个原创
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016220 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved