黑马程序员技术交流社区
标题:
获取时间问题,18-04 Calendar
[打印本页]
作者:
陈中岩
时间:
2013-4-16 03:18
标题:
获取时间问题,18-04 Calendar
本帖最后由 陈中岩 于 2013-4-16 12:26 编辑
package demo;
import java.util.Calendar;
class CalendarDemo2 {
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
c.set(2013,4,18);
printCalendar(c);
}
public static void printCalendar(Calendar c)
{
//利用查表法,输出格式为大写月份,大写星期
//月份表
String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
//星期表
String[] weeks = {"星期六","星期日","星期一","星期二","星期三","星期四","星期五"};
int mon = c.get(Calendar.MONTH);
int we = c.get(Calendar.DAY_OF_WEEK);
//获取年
sop(c.get(Calendar.YEAR)+"年");
//获取月
//sop((c.get(Calendar.MONTH)+1)+"月");
sop(months[mon]);
//获取日
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
//获取星期
//sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
sop(weeks[we]);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
复制代码
报的异常
2013年
五月
Exception in thread "main" 18日
java.lang.ArrayIndexOutOfBoundsException: 7
at demo.CalendarDemo2.printCalendar(CalendarDemo2.java:39)
at demo.CalendarDemo2.main(CalendarDemo2.java:12)
问题:为啥跟毕老师的代码一致,但是会出现上述异常呢?如何解决呢?
作者:
崔宝东
时间:
2013-4-16 08:18
本帖最后由 崔宝东 于 2013-4-16 08:22 编辑
public class CalendarDemo2 {
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
// c.set(2013, 4, 18);
printCalendar(c);
}
public static void printCalendar(Calendar c)
{
// 利用查表法,输出格式为大写月份,大写星期
// 月份表
String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月" };
// 星期表
String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五" ,"星期六"};
int mon = c.get(Calendar.MONTH);
int we = c.get(Calendar.DAY_OF_WEEK);
// 获取年
sop(c.get(Calendar.YEAR) + "年");
// 获取月
// sop((c.get(Calendar.MONTH)+1)+"月");
sop(months[mon]);
// 获取日
sop(c.get(Calendar.DAY_OF_MONTH) + "日");
// 获取星期
// sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
/**
* 注意数组的角标是从零开始的,另外还有就是你和毕老师的代码根本不一样呀,我记得不一样,呵呵。
* 另外外国人的第一天是星期日,还有就是数组角标从零开始,所以我定义一个""放在String数组的第一个元素占位
* 希望能帮到你;
*/
sop(weeks[we]);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
作者:
崔宝东
时间:
2013-4-16 08:20
public class CalendarDemo2 {
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
// c.set(2013, 4, 18);
printCalendar(c);
}
public static void printCalendar(Calendar c)
{
// 利用查表法,输出格式为大写月份,大写星期
// 月份表
String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月" };
// 星期表
String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五" ,"星期六"};
int mon = c.get(Calendar.MONTH);
int we = c.get(Calendar.DAY_OF_WEEK);
// 获取年
sop(c.get(Calendar.YEAR) + "年");
// 获取月
// sop((c.get(Calendar.MONTH)+1)+"月");
sop(months[mon]);
// 获取日
sop(c.get(Calendar.DAY_OF_MONTH) + "日");
// 获取星期
// sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
/**
* 注意数组的角标是从零开始的,另外还有就是你和毕老师的代码根本不一样呀,我记得不一样,呵呵。
* 另外外国人的第一天是星期日,还有就是数组角标从零开始,所以我定义一个""放在String数组的第一个元素占位
* 希望能帮到你;
*/
sop(weeks[we]);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
解决的问题在代码里面有注释;看一下这句的注释sop(weeks[we]);和 String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五" ,"星期六"};
的修改。
作者:
梁航斌
时间:
2013-4-16 08:32
import java.util.Calendar;
class CalendarDemo2 {
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
c.set(2013,4,11);
printCalendar(c);
}
public static void printCalendar(Calendar c)
{
//利用查表法,输出格式为大写月份,大写星期
//月份表
String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
//星期表
String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};//你的星期顺序排错了
int mon = c.get(Calendar.MONTH);
int we = c.get(Calendar.DAY_OF_WEEK);
//获取年
sop(c.get(Calendar.YEAR)+"年");
//获取月
//sop((c.get(Calendar.MONTH)+1)+"月");
sop(months[mon]);
//获取日
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
//获取星期
//sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
sop(weeks[we-1]);//星期的角标是从1开始的,所以你的代码如果不见减去1就会越界
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
复制代码
是你的星期顺序和角标的理解出了问题,应该是星期日开始,星期六结束。星期的角标是从1开始的。这个要注意
作者:
陈中岩
时间:
2013-4-16 12:26
梁航斌 发表于 2013-4-16 08:32
是你的星期顺序和角标的理解出了问题,应该是星期日开始,星期六结束。星期的角标是从1开始的。这个要注意 ...
谢谢。嗯嗯,问题解决了。
作者:
黄玉昆
时间:
2013-4-16 12:38
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2