Calendar问题(新手)

KG071 2010-06-23 12:30:15
代码如下:

import java.util.*;

public class Test6_1 {
public static void main(String[] args) {
int i=0,n;
System.out.println(" 日 一 二 三 四 五 六 ");
Calendar cal = Calendar.getInstance();
int y = Integer.parseInt(args[0]);
int m = Integer.parseInt(args[1]);
int d = Integer.parseInt(args[2]);
cal.set(y,m,d);
int weekday = cal.get(Calendar.DAY_OF_WEEK)-1; // 1 应该是这里出现问题
//格式化输出
for(i=0; i<weekday; i++) {
if(i==0) System.out.print(" ");
System.out.print(" ");
}
for(n=1; i<weekday + 31 ; i++) {
if(i%7 == 0) System.out.print("\n ");
if(n < 10) System.out.print(" ");
System.out.print(n + " ");
n++;
}
}
}

我想输出1989年12月的日历,但是结果不对。

运行结果:
d:\我的文档\桌面\ceshi>javac Test6_1.java

d:\我的文档\桌面\ceshi>java Test6_1 1989 12 1
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

1989年12月1日应该是周五啊,应该是注释1处有问题,但不知出现了什么问题!!希望各位帮忙看看!
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoxiang519 2010-06-23
  • 打赏
  • 举报
回复
楼上正解
qianzhimeiying 2010-06-23
  • 打赏
  • 举报
回复
另:楼主出生于1989年12月,鉴定完毕
qianzhimeiying 2010-06-23
  • 打赏
  • 举报
回复
月的取值范围是0-11
int m = Integer.parseInt(args[1])-1;
KG071 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qianzhimeiying 的回复:]
月的取值范围是0-11
int m = Integer.parseInt(args[1])-1;
[/Quote]

对了 找到问题了 谢谢大家
ronniegxq 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qianzhimeiying 的回复:]

另:楼主出生于1989年12月,鉴定完毕
[/Quote]
qq736204439 2010-06-23
  • 打赏
  • 举报
回复
int weekday = cal.get(Calendar.DAY_OF_WEEK)-1;

改为 int j = 0;
while(weekday != Calendar.fristDayOfWeek){

j ++;
cal.add(Calendar.DAY_OF_MONTH,-1);
weekday = cal.get(Calendar.DAY_OF_WEEK);

}
for(int i = 0;i < j ;i ++){
System.out.print(" ");
}
hoojo 2010-06-23
  • 打赏
  • 举报
回复
老外什么东西都是从0开始的,传说是老外的楼房有地下室,地下室是0。所以array的索引从0开始……

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧