黑马程序员技术交流社区

标题: [已解决]关于Calendar [打印本页]

作者: 蓝迪    时间: 2012-8-28 11:49
标题: [已解决]关于Calendar
本帖最后由 蓝迪 于 2012-8-28 13:27 编辑

  1. import java.util.*;
  2. import java.text.*;
  3. class  CalendarDemo
  4. {
  5.         public static void main(String[] args)
  6.         {

  7.                 Calendar c = Calendar.getInstance();
  8.                
  9.                 String[] mons ={"1月","2月","3月","4月"
  10.                         ,"5月","6月","7月","8月"
  11.                         ,"9月","10月","11月","12月"};
  12.                 int index = c.get(Calendar.MONTH);//获取月份

  13.                 String[] weeks ={"","7","1","2","3","4","5","6"};
  14.                 int indexs = c.get(Calendar.DAY_OF_WEEK);//获取星期

  15.                 sop(c.get(Calendar.YEAR)+"年");
  16.                
  17.                 sop(mons[index]);
  18.                 sop(c.get(Calendar.DAY_OF_MONTH)+"日");

  19.                 sop("星期"+weeks[indexs]);
  20.                


  21.         }
  22.         
  23. }
复制代码
问:同样是查表法获取月份和日期,都是从0角标位开始查找
为什么获取月份的时候不需要前头加个空的元素,而获取日期需要加一个空元素
作者: 杨卓儒    时间: 2012-8-28 11:59
不懂 。。。。。。
作者: 王金科    时间: 2012-8-28 12:27
因为在老外眼里,星期天是第一天,而且也是从1开始计算的,而月份是从0开始计算的
楼主你在代码后面加上sop(index);sop(indexs);,更改电脑的时间,一个个试一遍就全明白了




作者: 杨卫腾    时间: 2012-8-28 12:50
int indexs = c.get(Calendar.DAY_OF_WEEK);这句话中的c.get(Calendar.DAY_OF_WEEK)返回的整数是从1开始的,外国人认为1代表的是星期日,所以我们定义的字符串数组中weeks[1] = "7"
月份是从零开始的,所以不用在前边空一个元素。
作者: 蓝迪    时间: 2012-8-28 13:21
问题已经解决




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