黑马程序员技术交流社区

标题: 关于 闰年与平年的疑问? [打印本页]

作者: 776699    时间: 2013-12-29 16:40
标题: 关于 闰年与平年的疑问?
通过:一下代码:
Calendar cl=Calendar.getInstance();
cl.set(1000,2,1);
cl.add(Calendar.DAY_OF_MONTH,-1);
System.out.println(cl.get(Calendar.DAY_OF_MONTH));
通过以上代码:获取1000年 的二月分 天数为 29天。 为闰年
但是我的疑问是:
算闰年的方法是:year%4==0&&!Year%100==0||Year%400==0;

通过比较,第二种方法1000为 闰年不成立!!
希望大神门给点指点!!Thanks!!
作者: 汪洋大海    时间: 2013-12-29 17:22
如果不加括号你看着累,别人看着也累。你这个问题很奇葩,我号称java天下第一,但是你的问题真解不了。
求高人解题。。
作者: 浮出一个美    时间: 2013-12-29 18:41
果然很奇怪,期待高人解答。
作者: 王雷1    时间: 2013-12-29 18:55
兄弟你真的很强
作者: 776699    时间: 2013-12-29 20:02
汪洋大海 发表于 2013-12-29 17:22
如果不加括号你看着累,别人看着也累。你这个问题很奇葩,我号称java天下第一,但是你的问题真解不了。
求 ...

O(∩_∩)O~,我想了想,没想明白。呵呵,兄弟在黑马第几期?
作者: 776699    时间: 2013-12-29 20:04
王雷1 发表于 2013-12-29 18:55
兄弟你真的很强

唉,遇到这问题,就不了只能求助于黑马兄弟们了
作者: 776699    时间: 2013-12-29 20:38
本帖最后由 776699 于 2013-12-29 20:40 编辑

通过查 相关资料,查询结果如下:
在信息不足时将采用缺省设置, 在GregorianCalendar 类 中缺省设置一般为 YEAE=1970,MONTH=JANUARY,DATE=1;也与计算机的诞生相关,所以,在1970年之前,不能再依照第一种方法算起,所以第二种方法为准。O(∩_∩)O~O(∩_∩)O~
作者: 776699    时间: 2013-12-29 20:50
浮出一个美 发表于 2013-12-29 18:41
果然很奇怪,期待高人解答。

问题解决了,呵呵

作者: 776699    时间: 2013-12-29 20:51
王雷1 发表于 2013-12-29 18:55
兄弟你真的很强

这个和计算机的录入起始时间相关的,第一种方法要从1970-1-1号算起,才能生效。O(∩_∩)O~
作者: 浮出一个美    时间: 2013-12-29 20:57
776699 发表于 2013-12-29 20:38
通过查 相关资料,查询结果如下:
在信息不足时将采用缺省设置, 在GregorianCalendar 类 中缺省设置一般为 ...

你的意思是1970年1月1日以前的时间都算作默认的1970年1月1日?
Calendar cl = Calendar.getInstance();
                cl.set(1111, 2, 1);
                cl.add(Calendar.DAY_OF_MONTH, -1);
                System.out.println(cl.get(Calendar.DAY_OF_MONTH));
这个输出又是28
作者: 776699    时间: 2013-12-30 01:40
浮出一个美 发表于 2013-12-29 20:57
你的意思是1970年1月1日以前的时间都算作默认的1970年1月1日?
Calendar cl = Calendar.getInstance();
         ...

  此方法只能用在1970-1-1以后,以前不能用方法判断,若还不明白,参看API Calendar 类,有说明。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2