MyException - 我的异常网
当前位置:我的异常网» C++ » 发动大家找异常(小弟我没辙了)

发动大家找异常(小弟我没辙了)(2)

www.MyException.Cn  网友分享于:2013-02-21  浏览:3次

month Required. The month as an integer between 0 and 11 (January to December).

------解决方案--------------------
引用:
有什么奇怪的吗?
date da(1900,2,29);表示的是3月29日,msdn上如下描述第二个参数
month Required. The month as an integer between 0 and 11 (January to December).


------解决方案--------------------
Java中也是这样,月份是用0-11的数字表示,很容易搞死初学者
------解决方案--------------------
先给你两组数你看看吧
a=1476
b=2
c=29
1900-02-29 08:00:00 Thursday
--------------------------------
a=1680
b=2
c=29
1900-02-29 08:00:00 Thursday
-----------------------------
这两组数都能出现1900-2-29的结果.
我没有去验证楼主的isleap()里的表达式能不能正确地判断.
但此外还有一点的是,在process()里边,
运行下列语句:
else while(tm_mday>zhw::dayFmon(getYear(),getMonth()))  
        {  
            tm_mday -=  zhw::dayFmon(getYear(),getMonth());  
            pro_addone_mon();  
        }
的时候,你的a值,也就是year,仍然是随机生成出来的那个值,而你用这个year值来作是否是闰年的判断,那肯定
是不正确的,应该在上述语句之前将year值先设定(if(tm_year<0) tm_year=0; )。



------解决方案--------------------
也就是当你随机生成的year值小于1900的时候,你应该先把date对象的year值置成1900(tm_year=0),然后用1900来进行isleap()判断。
在你的程序里,你直接将随机生成的值来进行isleap()判断了,之后你又将小于1900的随机值置成了1900.

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有