黑马程序员技术交流社区

标题: 还是关于Date小练习的问题 [打印本页]

作者: breaveheart    时间: 2013-8-7 09:45
标题: 还是关于Date小练习的问题
本帖最后由 breaveheart 于 2013-8-7 10:15 编辑

  1. <P>import java.util.*;
  2. import java.text.*;</P>
  3. <P>//计算任意年的2月份有多少天?
  4. class DateTest2
  5. {
  6. public static void main(String[] args)
  7. {
  8. int a = 2015;//输入想验证的年份
  9. setYear(a);
  10. }
  11. public static void setYear(int a)
  12. {
  13. int year = a;
  14. Calendar c = Calendar.getInstance();
  15. c.set(year,3,1);
  16. c.add(Calendar.DAY_OF_MONTH,-1);
  17. System.out.println("验证set:"+c.get(Calendar.YEAR)+"年"+c.get(Calendar.MONTH)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
  18. System.out.print("您输入"+year+"年的2月份有 ");
  19. System.out.println((int)(c.get(Calendar.DAY_OF_MONTH))+" 天");
  20. }
  21. }
  22. </P>
复制代码

求教啊,我的代码怎么会输出2月有31天啊。。。。昏死


作者: 薛淑凯    时间: 2013-8-7 10:06
因为3代表的是四月,最后算出的是三月的天数。其实有一个更简单的方法
int getActualMaximum(int field)
          给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值
getActualMaximum(Calendar.DAY_OF_MONTH)就搞定了
作者: 哪颗最亮的星星    时间: 2013-8-7 10:14
public void findDayOfMonth(int year,int month)
        {
                Calendar cale=Calendar.getInstance();
               
                cale.set(year,month,1);
               
                cale.add(Calendar.DAY_OF_MONTH,-1);
               
                int day=cale.get(Calendar.DAY_OF_MONTH);
                System.out.println(day);
        }


你可以调用这段代码,只需要给定年和月即可
作者: breaveheart    时间: 2013-8-7 10:15
薛淑凯 发表于 2013-8-7 10:06
因为3代表的是四月,最后算出的是三月的天数。其实有一个更简单的方法
int getActualMaximum(int field)
  ...

这个方法好赞,谢谢啦。现在懂了:lol
作者: breaveheart    时间: 2013-8-7 10:29
哪颗最亮的星星 发表于 2013-8-7 10:14
public void findDayOfMonth(int year,int month)
        {
                Calendar cale=Calendar.getInstance();

其实我们两个的方法是一样的,只是我为了调试错误所以输出语句验证的东西多了点。
不过谢谢啦。:)
作者: xkfxm    时间: 2013-8-7 10:58
这个怎么回事?试了下    怎么是31天?
作者: breaveheart    时间: 2013-8-7 12:18
xkfxm 发表于 2013-8-7 10:58
这个怎么回事?试了下    怎么是31天?

哈哈,是吧。其实是老外定义的月份问题。3表示的是四月,所以这个函数里我要调用3月需要用2来表示。:lol




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