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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王召轩 中级黑马   /  2013-12-13 19:13  /  1101 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. Calendar  calendar  = Calendar.getInstance();
  2.        
  3.                 System.out.println(calendar.get(calendar.YEAR)+"  ");
  4.                 System.out.println(calendar.get(calendar.DAY_OF_MONTH));
  5.                 System.out.println(calendar.get(calendar.DAY_OF_YEAR));
  6.                 System.out.println(calendar.get(calendar.MONTH));
复制代码
为什么输出的为:2013  13
347
11
最后一个输出的为11月。


评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

6 个回复

倒序浏览
附个图。表明一切。

QQ截图20131213194357.jpg (20.18 KB, 下载次数: 9)

QQ截图20131213194357.jpg
回复 使用道具 举报
calendar.MONTH是从 0 开始的
回复 使用道具 举报
指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。 算出来的月份要加1,或者在写代码时就进行加1操作。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 小斥候 于 2013-12-13 19:53 编辑

给你看源文件:
MONTH

public static final int MONTH
Field number for get and set indicating the month. This is a calendar-specific value. The first month of the year in the Gregorian and Julian calendars is JANUARY which is 0; the last depends on the number of months in a year.
See Also:
JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER, UNDECIMBER, Constant Field Values
所以最后的话,你要再加 1 ,编程中很多都是从 0 开始

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
air 中级黑马 2013-12-13 20:29:02
地板
这么跟你说吧。毕向东老师视频里特意交代你别忘了,你还就忘了
那小结视频里讲的特别地方

第一:外国人的观念
每个星期第一天是星期天,小学都知道的,
所以星期天到星期六是DAY_OF_WEEK(1~7)而不是星期一到星期天(1~7)

第二:月份:一月到十二月(0~11)
在JAVA或者是计算机领域, 很多地方都是从0开始的,0不是没有东西,0也有定义
在这里0代表的是1月,11代表的是12月,并不是你看到11,11就是11月
如果你要直观的看到12月就是12月。那你得+1
视频看的不够认真啊,建议你拿个笔记本,
凡是遇到
关键字,特殊方法,版本特性,技巧性,规则性的事物
你就把他抄下来,并用视频里的天数定义一下,方便你查找
听过的笑话,一天就忘。你小时候重复抄过的汉字到现在你还会写
共勉之~~~~~~(手打不像楼上复制   望给分)

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 还记得梦想吗 于 2013-12-14 02:29 编辑

由于日期的月是从0开始的,c.set(year,0,1);//某一年的1月1日。c.set(year,1,1);//某一年的2月1日。c.set(year,2,1);//某一年的3月1日。


import java.util.*;


/*
两个练习:
1.获取任意年的二月有多少天
        思路:根据指定年设置一个时间就是
        c.set(year,2,1);//某一年的3月1日。
        c.add(Calendar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。


2,获取昨天的现在的这个时刻。
        c.add(Calendar.DAY_OF_MONTH,-1);
*/


class  CalendarDemo2
{
        public static void main(String[] args)
        {
                Calendar c = Calendar.getInstance();
                c.set(2012,2,23);


                //add 方法可以给指定的日历添加或减去指定时间的量
                c.add(Calendar.MONTH,4);
                printCalendar(c);
        }


        


        public static void printCalendar(Calendar c) {


                String[] mons ={"一月","二月","三月","四月",
                                                        "五月","六月","七月","八月",
                                                        "九月","十月","十一月","十二月"};


                        int index = c.get(Calendar.MONTH);


                        String[] weeks ={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};


                        int index1 = c.get(Calendar.DAY_OF_WEEK);




                        sop(c.get(Calendar.YEAR)+"年");                          //使用c.get(Calendar.MONTH)时需要在后面加1才能获取当前月份
                        //
sop((c.get(Calendar.MONTH)+1)+"月");
                        sop(mons[index]);
                        sop(c.get(Calendar.DAY_OF_MONTH)+"日");


                        //sop("星期"+c.get(Calendar.DAY_OF_WEEK));
                        sop(weeks[index1]);


                        
        }


        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
}


评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马