A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马连家华 中级黑马   /  2012-5-9 16:24  /  2651 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马连家华 于 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?

3 个回复

倒序浏览
楼上同学不认真,大家表学他哈
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: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);//得到的才是一个月的第几天

回复 使用道具 举报
同样学习了,正好也遇到这个问题了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马