黑马程序员技术交流社区

标题: 关于日历类的问题 [打印本页]

作者: 我为你着迷    时间: 2014-12-8 08:42
标题: 关于日历类的问题
本帖最后由 我为你着迷 于 2014-12-8 08:45 编辑
  1. import java.util.*;
  2. class CalendarDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 Calendar c=Calendar.getInstance();
  7.                
  8.                 String[] mons={"一月","二月","三月","四月",
  9.                                "五月","六月","七月","八月",
  10.                              "九月","十月","十一月","十二月"};
  11.                               
  12.                 String[] weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  13.          
  14.          
  15.                  int index=c.get(Calendar.MONTH);
  16.                         
  17.                 int index1=c.get(Calendar.DAY_OF_WEEK);//星期中的某一天
  18.                
  19.                 sop(c.get(Calendar.YEAR)+"年");
  20.                 sop(mons[index]);
  21.                 sop(c.get(Calendar.DAY_OF_MONTH)+"日");//月中的某一天
  22.                 sop(weeks[index1]);
  23.         }
  24.         
  25.         public static void sop(Object obj)
  26.         {
  27.              System.out.println(obj);        
  28.         }
  29. }
复制代码

String[] weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  大家好 我想问下这胡话星期日的前边为什么加一个空内容的双引号啊 不懂  麻烦大神帮小弟解答下  谢谢 黑马币无线奉上啊
作者: zhaozhao    时间: 2014-12-8 11:31
你可以修改系统的月份和星期,并打印index和index1,可知月份1,2,3...对应的index的值为0,1,2。而星期日,1,2对应的index1为:1,2,3...,因此weeks[]中下表为0的元素是取不到的!因此要将星期从下标为1的元素开始存储!
作者: 我为你着迷    时间: 2014-12-8 11:49
zhaozhao 发表于 2014-12-8 11:31
你可以修改系统的月份和星期,并打印index和index1,可知月份1,2,3...对应的index的值为0,1,2。而星期日, ...

那为什么把星期日放在前边呢   放在后边可以吗  这个是根据老外来的吗
作者: xingyunjunjun    时间: 2014-12-8 11:54
待大神来解答
作者: zhaozhao    时间: 2014-12-8 11:54
对的,在系统获取的星期的排序中,星期日对应index1值为:1
作者: zhaozhao    时间: 2014-12-8 12:05
不客气,共同进步!
作者: wangcongwu    时间: 2014-12-8 12:06
我为你着迷 发表于 2014-12-8 11:49
那为什么把星期日放在前边呢   放在后边可以吗  这个是根据老外来的吗

int index1=c.get(Calendar.DAY_OF_WEEK);//星期中的某一天
这个c.get(Calendar.DAY_OF_WEEK) 给出的是你运行程序的当天所在的星期几,比如你周日运行的就给你int 类型的数字 1
你那个数组的第一个int类型的数据应该是空的,因为1应该是对应 的周日,然后你把这个1 作为角标返回给那个数组 数组得到了角标1 就返回给你角标1 对应的星期日。
星期日放在第一个是根据圣经来的,应该是过去罗马的教皇和罗马皇帝规定的,后来基督教大兴成为全球宗教所以现在就都把周日作为一个星期的开头看。中国古代是5日一个星期,后来中国跟老外学的也是7天一个星期了。
作者: 任我行    时间: 2014-12-8 20:51
计算天、月份是从0 开始的,0-11是1-12月。而计算星期中的天数是从1开始的,国外星期中第一天是从星期天,因此1表示星期日,数组下标是从0开始的,所有要在数组前加上空格或者int index1=c.get(Calendar.DAY_OF_WEEK - 1);




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