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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© doyxy 中级黑马   /  2014-3-25 17:57  /  994 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 doyxy 于 2014-3-25 21:35 编辑

为什么不管把一周开始的第一天设置成什么,获取到的DAY_OF_WEEK都不变呢?
我系统默认的一周开始是星期天,修改成其他的值,结果也还是一样,这个 setFirstDayOfWeek()是做什么的呢?谢谢
  1. package SystemTest;

  2. import java.util.Calendar;

  3. public class WeekTest {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 String[] week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  10.                 //Calendar.DAY_OF_WEEK返回的是1-7,所以星期值应该从1脚标开始.
  11.                 //如果星期开始是星期日,则星期二是第3天,week[3]="星期二";
  12.                 Calendar cld = Calendar.getInstance();
  13.                 int wk = cld.get(Calendar.DAY_OF_WEEK);
  14.                 System.out.println("星期中的第"+wk+"天");//结果是 3;
  15.                 System.out.println(week[wk]); //结果是"星期二";
  16.                
  17.                 cld.setFirstDayOfWeek(Calendar.MONDAY);//将一周开始设置为星期一
  18.                 int wk1 = cld.get(Calendar.DAY_OF_WEEK);//如果星期开始是星期一,则星期二是第2天,week[2]="星期一",但输出还是和上面一样
  19.                 System.out.println("星期中的第"+wk1+"天");
  20.                 System.out.println(week[wk1]);
  21.                
  22.         }

  23. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

正序浏览
理解错误,这个设置一周开始是用于判断一个月或者一年中有多少个星期的.
  1. package SystemTest;

  2. import java.util.Calendar;

  3. public class WeekTest {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 String[] week = { "", "星期日", "星期一", "星期二",
  10.                                 "星期三", "星期四", "星期五", "星期六" };
  11.                 Calendar cld = Calendar.getInstance();
  12.                 int wk = cld.get(Calendar.DAY_OF_WEEK);
  13.                 System.out.println(cld.getTime());
  14.                 System.out.println(week[wk]);

  15.                 cld.setFirstDayOfWeek(Calendar.SATURDAY);// 将一周开始设置为星期六,与星期无关,get
  16.                                                                                                         // Calendar.DAY_OF_WEEK返回的1-7代表星期日-六.
  17.                 System.out.println("星期开始是SATURDAY时本月的星期数:"
  18.                                 + cld.get(Calendar.WEEK_OF_MONTH));// 一个月中的星期数
  19.                 cld.setFirstDayOfWeek(Calendar.SUNDAY);// 将一周开始设置为星期日
  20.                 System.out.println("星期开始是SUNDAY时本月的星期数:"
  21.                                 + cld.get(Calendar.WEEK_OF_MONTH));// 一个月中的星期数

  22.                 // 2014年1月1日为星期三,一周最小天数为5时将不算一周.
  23.                 cld.setMinimalDaysInFirstWeek(4);
  24.                 System.out.println("一周最小天数为" + cld.getMinimalDaysInFirstWeek()
  25.                                 + "时本周是第" + cld.get(Calendar.WEEK_OF_YEAR) + "周");
  26.                 cld.setMinimalDaysInFirstWeek(5);
  27.                 System.out.println("一周最小天数为" + cld.getMinimalDaysInFirstWeek()
  28.                                 + "时本周是第" + cld.get(Calendar.WEEK_OF_YEAR) + "周");

  29.         }

  30. }
复制代码

运行结果
  1. Wed Mar 26 10:37:24 CST 2014
  2. 星期三
  3. 星期开始是SATURDAY时本月的星期数:4
  4. 星期开始是SUNDAY时本月的星期数:5
  5. 一周最小天数为4时本周是第13周
  6. 一周最小天数为5时本周是第12周
复制代码




回复 使用道具 举报
还没看到后面,那我继续看看,谢谢
回复 使用道具 举报
毕老师视频中有讲日历的使用,这题在练习中有讲到过,你再认真去看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马