黑马程序员技术交流社区

标题: 关于Calendar的使用中数组越界 [打印本页]

作者: ℡Bruce    时间: 2014-5-8 13:52
标题: 关于Calendar的使用中数组越界
  1. String [] Months=new String[]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
  2.                 String [] Weeks=new String[]{"一","二","三","四","五","六","日"};
  3.                 System.out.println(c.get(Calendar.YEAR)+"年"+Months[c.get(Calendar.MONTH)]+c.get(Calendar.DAY_OF_MONTH)+"日,星期"+Weeks[c.get(Calendar.DAY_OF_WEEK)]);
复制代码
  1. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 128
  2.         at com.itheima.CalendarDemo.PrintCalendar(CalendarDemo.java:20)
  3.         at com.itheima.CalendarDemo.main(CalendarDemo.java:14)
复制代码

会报数组越界的错误,Weeks[c.get(Calendar.DAY_OF_WEEK)]哪里需要更改?

作者: z1342802487    时间: 2014-5-8 15:01
先说一下,养成良好的风格,一行代码尽量简短,并且保证一行代码只做一件事
DAY_OF_WEEK: 指一个星期中的某天。所以他会受到 第一天是星期几的影响。
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
下面是我改好的代码
  1. import java.util.*;
  2. public class Test
  3.         {
  4.                 public static void main(String[] args)
  5.                         {
  6.                                 String [] Months=new String[]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
  7.                 String [] Weeks=new String[]{"","日","一","二","三","四","五","六"};
  8.                 Calendar c=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));    //获取东八区时间
  9.                 System.out.print(c.get(Calendar.YEAR)+"年");
  10.                 System.out.print(Months[c.get(Calendar.MONTH)]);
  11.                 System.out.print(c.get(Calendar.DAY_OF_MONTH)+"日");
  12.                 System.out.print("星期"+Weeks[c.get(Calendar.DAY_OF_WEEK)]);
  13.                         }
  14.         }
复制代码





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