黑马程序员技术交流社区

标题: 获取二月天数 [打印本页]

作者: 黑马连家华    时间: 2012-5-9 16:24
标题: 获取二月天数
本帖最后由 黑马连家华 于 2012-8-13 17:26 编辑

//获取二月天数的函数
        public static int febDays(int year)
        {
                //得到时间
                Calendar c = Calendar.getInstance();
                //设置时间
                c.set(year,2,1);
                //将设置的时间减去一天
                c.add(Calendar.DAY_OF_MONTH,-1);
                //返回天数
                return Calendar.DAY_OF_MONTH;
        }
为什么返回的是5?
作者: 黑马连家华    时间: 2012-5-9 16:33
楼上同学不认真,大家表学他哈
public static int febDays(int year)
        {
                //得到时间
                Calendar c = Calendar.getInstance();
                //设置时间
                c.set(year,2,1);
                //将设置的时间减去一天
                c.add(Calendar.DAY_OF_MONTH,-1);
                //返回天数
                return c.get(Calendar.DAY_OF_MONTH);
        }

但是为什么不改就是5呢?什么原理
作者: 张小锋    时间: 2012-5-9 18:11
本帖最后由 张小锋 于 2012-5-9 18:13 编辑

Calendar类里提供了一些表示年,月,分的静态常量

比如Calendar.DAY_OF_MONTH这个常量表示的就是类似public final static Day_OF_MONTH=5
Calendar.DAY_OF_WEEK_IN_MONTH表示的的常量就类似public final DAY_OF_WEEK_IN_MONTH=8;
等等,他们就是一个表示,就好比1代表星期天,2代表星期一一样,仅仅是一个标示

Calendar.DAY_OF_MONTH对应的值就是5,本省并不表示当前月的第几天的那个数
要得到当前时间的年 ,月,份就要把常量作为get(int i)方法的参数,传进去的参数是年,得到的就是年份,
总结就是说:

return Calendar.DAY_OF_MONTH;//返回的常量值
return c.get(Calendar.DAY_OF_MONTH);//得到的才是一个月的第几天


作者: 高云飞    时间: 2012-5-9 20:30
同样学习了,正好也遇到这个问题了




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