📄 subject_14332.htm
字号:
<p>
序号:14332 发表者:毛毛虫 发表日期:2002-09-05 22:04:11
<br>主题:好笑就笑吧,笑过了可别忘了告诉我错在哪里。
<br>内容:/********************************************************************<BR>计算任意两个日期之间相隔多少天<BR>例如2002-01-01到2002-01-31相隔30天<BR>*********************************************************************/<BR>#include <iostream.h><BR><BR>//声明两个变量用于存放待比较的两个日期<BR>struct date {int year, month, day;};<BR>date date1,date2,temp,x,y;<BR><BR>//交换两个日期的值<BR>inline void swap (x,y)<BR>{temp=x; x=y; y=temp}<BR><BR>//判断闰年,是就返回1<BR>inline int leapYear(yea)<BR>{if (yea%4=0 || yea%100 !=0 && yea%400=0) return 1;}<BR><BR>void main()<BR>{<BR> //输入需要比较的两个日期<BR> cin >>date1.year>>date1.month>>date1.day>>date2.year>>date2.month>>date2.day;<BR> <BR> //先比较两个日期的大小<BR> int i=1; //用于确定两个日期的位置是否交换过,1是没交换,-1是交换<BR> if (date1.year>date2.year) <BR> {swap (date1,date2);i=-1;<BR> else if (date1.month >date2.month)<BR> {swap (date1,date2); i=-1;<BR> else if (date1.day > date2.day)<BR> swap (date1,date2); i=-1; }<BR> }<BR><BR> //定义个表示每个月各有多少天的数组<BR> int mouthDay[13]={31,31,28,31,30,31,30,31,31,30,31,30,31};<BR><BR> //用大日期减去小日期<BR> int datys=0; //初始化相差的天数为0 <BR> //先比较天<BR> if (date2.day < date1.day) <BR> {int outMonth=date2.month-1; //存放上个月是哪月<BR> date2.day += mouthDay[outMonth];<BR> if (leapYear(date2.year)=1 || outMonth=2)<BR> date2.day+=1;<BR> date2.month -= 1;}<BR> days=date2.day-date1.day;<BR> //再比较月<BR> int mouth1 =0; int mouth2 =0;<BR> for (int i=1;i<date2.month;i++)<BR> {mouth2 += mouthDay[i];}<BR> if (date2.month < date1.month) <BR> {mouth2 +=365;<BR> date2.year -= 1;}<BR> mouth2 += leapYear(date2.year);<BR> for (int i=1;i<date1.month;i++)<BR> {mouth1 += mouthDay[i];}<BR> days += (mouth2 - mouth1);<BR> //最后比较年<BR> days += (date2.year -date1.year)*365;<BR> for (i=date1.year ; i<date2.year ;i++)<BR> {days += leapYeat(i);}<BR><BR> //输出结果<BR> cout <<date2.year<<"-"<<date2.month<<"-"<<date2.day<<"比";<BR> cout <<date1.year<<"-"<<date1.month<<"-"<<date1.day;<BR> if (i=-1)<BR> {cout <<"少"<<days<<"天 \n";<BR> else cout <<"多"<<days<<"天 \n";}<BR>}<BR><BR>--------------------Configuration: 小模块 - Win32 Debug--------------------<BR>Compiling...<BR>001.cpp<BR>F:\资料\编程\编程练习\小模块\001.cpp(13) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition<BR>F:\资料\编程\编程练习\小模块\001.cpp(16) : error C2065: 'yea' : undeclared identifier<BR>F:\资料\编程\编程练习\小模块\001.cpp(17) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition<BR>F:\资料\编程\编程练习\小模块\001.cpp(27) : error C2065: 'swap' : undeclared identifier<BR>F:\资料\编程\编程练习\小模块\001.cpp(28) : error C2181: illegal else without matching if<BR>F:\资料\编程\编程练习\小模块\001.cpp(30) : error C2181: illegal else without matching if<BR>F:\资料\编程\编程练习\小模块\001.cpp(43) : error C2065: 'leapYear' : undeclared identifier<BR>F:\资料\编程\编程练习\小模块\001.cpp(43) : error C2106: '=' : left operand must be l-value<BR>F:\资料\编程\编程练习\小模块\001.cpp(46) : error C2065: 'days' : undeclared identifier<BR>F:\资料\编程\编程练习\小模块\001.cpp(49) : error C2374: 'i' : redefinition; multiple initialization<BR> F:\资料\编程\编程练习\小模块\001.cpp(25) : see declaration of 'i'<BR>F:\资料\编程\编程练习\小模块\001.cpp(55) : error C2374: 'i' : redefinition; multiple initialization<BR> F:\资料\编程\编程练习\小模块\001.cpp(25) : see declaration of 'i'<BR>F:\资料\编程\编程练习\小模块\001.cpp(61) : error C2065: 'leapYeat' : undeclared identifier<BR>F:\资料\编程\编程练习\小模块\001.cpp(68) : error C2181: illegal else without matching if<BR>Error executing cl.exe.<BR><BR>001.obj - 13 error(s), 0 warning(s)
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:雷神 回复日期:2002-09-06 08:49:51
<br>内容:{if (yea%4=0 || yea%100 !=0 && yea%400=0) return 1;}<BR>1、=是赋值应该==<BR>2、yea 是否应该为year<BR>3\......<BR><BR>先看看语法有没有错吧,还有笔误造成的,然后再说。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:天才 回复日期:2002-09-06 08:50:35
<br>内容:/********************************************************************<BR>计算任意两个日期之间相隔多少天<BR>例如2002-01-01到2002-01-31相隔30天<BR>*********************************************************************/<BR>#include <iostream.h><BR>#include <time.h><BR><BR>//声明两个变量用于存放待比较的两个日期<BR>struct date {int year, month, day;};<BR>date date1,date2,temp,x,y;<BR><BR>//交换两个日期的值<BR>inline void swap (date x,date y)<BR>{temp=x; x=y; y=temp;}<BR><BR>//判断闰年,是就返回1<BR>inline int leapYear(int yea)<BR>{if (yea%4==0 || yea%100 !=0 && yea%400==0) return 1;return 0;}<BR><BR>void main()<BR>{<BR> //输入需要比较的两个日期<BR> cin >>date1.year>>date1.month>>date1.day>>date2.year>>date2.month>>date2.day;<BR> <BR> //先比较两个日期的大小<BR> int i=1; //用于确定两个日期的位置是否交换过,1是没交换,-1是交换<BR> if (date1.year>date2.year) <BR> {swap (date1,date2);i=-1;}<BR> else if (date1.month >date2.month)<BR> {swap (date1,date2); i=-1;}<BR> else if (date1.day > date2.day)<BR> {swap (date1,date2); i=-1; }<BR> <BR><BR> //定义个表示每个月各有多少天的数组<BR> int mouthDay[13]={31,31,28,31,30,31,30,31,31,30,31,30,31};<BR><BR> //用大日期减去小日期<BR> int days=0; //初始化相差的天数为0 <BR> //先比较天<BR> if (date2.day < date1.day) <BR> {int outMonth=date2.month-1; //存放上个月是哪月<BR> date2.day += mouthDay[outMonth];<BR> if (leapYear(date2.year)==1 || outMonth==2)<BR> date2.day+=1;<BR> date2.month -= 1;}<BR> days=date2.day-date1.day;<BR> //再比较月<BR> int mouth1 =0; int mouth2 =0;<BR> for (i=1;i<date2.month;i++)<BR> {mouth2 += mouthDay[i];}<BR> if (date2.month < date1.month) <BR> {mouth2 +=365;<BR> date2.year -= 1;}<BR> mouth2 += leapYear(date2.year);<BR> for (i=1;i<date1.month;i++)<BR> {mouth1 += mouthDay[i];}<BR> days += (mouth2 - mouth1);<BR> //最后比较年<BR> days += (date2.year -date1.year)*365;<BR> for (i=date1.year ; i<date2.year ;i++)<BR> {days += leapYear(i);}<BR><BR> //输出结果<BR> cout <<date2.year<<"-"<<date2.month<<"-"<<date2.day<<"比";<BR> cout <<date1.year<<"-"<<date1.month<<"-"<<date1.day;<BR> if (i=-1)<BR> {cout <<"少"<<days<<"天 \n";}<BR> else {cout <<"多"<<days<<"天 \n";}<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -