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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我为你着迷 金牌黑马   /  2014-12-8 08:42  /  1294 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 我为你着迷 于 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={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  大家好 我想问下这胡话星期日的前边为什么加一个空内容的双引号啊 不懂  麻烦大神帮小弟解答下  谢谢 黑马币无线奉上啊

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

7 个回复

倒序浏览
你可以修改系统的月份和星期,并打印index和index1,可知月份1,2,3...对应的index的值为0,1,2。而星期日,1,2对应的index1为:1,2,3...,因此weeks[]中下表为0的元素是取不到的!因此要将星期从下标为1的元素开始存储!
回复 使用道具 举报
zhaozhao 发表于 2014-12-8 11:31
你可以修改系统的月份和星期,并打印index和index1,可知月份1,2,3...对应的index的值为0,1,2。而星期日, ...

那为什么把星期日放在前边呢   放在后边可以吗  这个是根据老外来的吗
回复 使用道具 举报
待大神来解答
回复 使用道具 举报
对的,在系统获取的星期的排序中,星期日对应index1值为:1

评分

参与人数 1黑马币 +15 收起 理由
我为你着迷 + 15 赞一个! 谢谢 亲

查看全部评分

回复 使用道具 举报
不客气,共同进步!
回复 使用道具 举报
我为你着迷 发表于 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天一个星期了。

评分

参与人数 2技术分 +2 黑马币 +10 收起 理由
李家汉子初养成 + 2 很给力!
我为你着迷 + 10 你好强啊 佩服 圣经来的

查看全部评分

回复 使用道具 举报
计算天、月份是从0 开始的,0-11是1-12月。而计算星期中的天数是从1开始的,国外星期中第一天是从星期天,因此1表示星期日,数组下标是从0开始的,所有要在数组前加上空格或者int index1=c.get(Calendar.DAY_OF_WEEK - 1);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马