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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kira 中级黑马   /  2014-2-2 17:00  /  1663 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 kira 于 2014-2-2 17:01 编辑

各位新年好
今天复习到Date类 以及Calendar
视频中毕老师是用查表法 来定制星期的

他是这么写的
  1. import java.util.Calendar;

  2. public class CalendarDemo {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 Calendar carlen =Calendar.getInstance();//获取calendar
  9. //                System.out.println(carlen.get(Calendar.YEAR)+"年");//获取年
  10.                 String[] moon ={"一月","二月","三月","四月",
  11.                                                 "五月","六月","七月","八月",
  12.                                                 "九月","十月","十一月","十二月"};
  13.                 String[] week ={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  14.                 int index = carlen.get(Calendar.MONTH);//获取月份角标
  15.                 int indexweek = carlen.get(Calendar.WEDNESDAY);
  16.                 //以下月份写为
  17.         System.out.println(carlen.get(Calendar.YEAR)+"年"+
  18.                         (moon[index])+
  19.                         carlen.get(Calendar.DATE)+"日"+
  20.                         carlen.get(Calendar.HOUR)+"小时"+week[indexweek]);
  21.         }

  22. }
复制代码

但运行之后 发现老是前一天的 他说1角标代表星期日
我经过改动 把空值去了 因为我发现 如果把空值去掉替换成星期六的位置 结果也一样
还不是正确的星期 结果我这次直接大胆的又前推了一位
我是这么写的
  1. import java.util.Calendar;

  2. public class CalendarDemo {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 Calendar carlen =Calendar.getInstance();//获取calendar
  9. //                System.out.println(carlen.get(Calendar.YEAR)+"年");//获取年
  10.                 String[] moon ={"一月","二月","三月","四月",
  11.                                                 "五月","六月","七月","八月",
  12.                                                 "九月","十月","十一月","十二月"};
  13.                 String[] week ={"星期五","星期六","星期日","星期一","星期二","星期三","星期四",};//新写法
  14.                 int index = carlen.get(Calendar.MONTH);//获取月份角标
  15.                 int indexweek = carlen.get(Calendar.WEDNESDAY);
  16.                 //以下月份写为
  17.         System.out.println(carlen.get(Calendar.YEAR)+"年"+
  18.                         (moon[index])+
  19.                         carlen.get(Calendar.DATE)+"日"+
  20.                         carlen.get(Calendar.HOUR)+"小时"+week[indexweek]);
  21.         }

  22. }
复制代码
两处代码不同之处在于角标的获取
结果我自己写的反而是正确能获取时间的 这个是老师出现的问题么 还是什么原因
搞了半天实在没想明白 求大神解答一下{:soso_e136:}


评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

6 个回复

倒序浏览
你确定是毕老师的源代码?看代码这里的需求应该是显示当前的年月日,时间和星期。
/*出问题是这句代码*/
int indexweek = carlen.get(Calendar.WEDNESDAY);
/*正确的应该是*/
int indexweek = carlen.get(Calendar.DAY_OF_WEEK);
个人见解,欢迎指正

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
我先试了下你发的两个代码,是你的对。

我得出的结论是你代码写错了。。。。

  1. int indexweek = carlen.get(Calendar.WEDNESDAY);
复制代码

应该是
  1. int indexweek = carlen.get(Calendar.[color=Red]DAY_OF_WEEK[/color]);
复制代码

用这个是毕老师的对,你的是错

评分

参与人数 1技术分 +1 收起 理由
黄晓东 + 1

查看全部评分

回复 使用道具 举报
int indexweek = carlen.get(Calendar.DAY_OF_WEEK);
回复 使用道具 举报
榨菜 发表于 2014-2-2 21:24
int indexweek = carlen.get(Calendar.DAY_OF_WEEK);

原来如此 看来我把调用的对象搞错了 谢啦
回复 使用道具 举报
zhangchao 发表于 2014-2-2 21:16
你确定是毕老师的源代码?看代码这里的需求应该是显示当前的年月日,时间和星期。
/*出问题是这句代码*/
in ...

嗯 多谢 现在知道了
回复 使用道具 举报
kira 发表于 2014-2-4 20:32
嗯 多谢 现在知道了

客气,互相学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马