首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

用Java编日历程序

发布网友

我来回答

1个回答

热心网友

首先第二行
calendar.set(a,b,1);
应该改为
calendar.set(a,b-1,1);
因为月份,b 表示 b+1月。

其次
int day=calendar.get(Calendar.DAY_OF_WEEK);
应改为
int day=calendar.get(Calendar.DAY_OF_WEEK) - 1;
因为日历对象调用get方法获取的周:1表示星期日,2表示星期一,以此类推
那么你的第四行循环时,当day取1,即当星期日时,你的空格准备放在什么地方?(回想下日历的样子)

我的水平有限,所以看你的代码感觉有点乱乱的,有点晕,而且代码不全。

给你个很简练的日历程序,你对比着看看你的日历的问题吧。我觉得你把底下的这个弄懂了,你的日历的问题,也差不错解决了。

代码我也给你注释了一些。希望你认真看,然后自己解决问题,这样进步是最大的:

import java.util.*;

public class E6_3 {
public static void main(String args[]) {
System.out.println("日 一 二 三 四 五 六");
Calendar calendar = Calendar.getInstance();
calendar.set(2006, 11, 1); // 将日历翻到2006年12月1日
int 星期几 = calendar.get(Calendar.DAY_OF_WEEK) - 1;
// 获取1日是星期几(get方法返回的值是1表示星期日,星期六返回的值是7)
String a[] = new String[星期几 + 31]; //将输出以字符串的形式赋值到数组里
for (int i = 0; i < 星期几; i++) {//在没有日期的地方放空格
a[i] = " ";
}
for (int i = 星期几, n = 1; i < 星期几 + 31; i++) {//填补日期数字
if (n <= 9) {//当他是个位数时为了保持整齐,适当空行
a[i] = String.valueOf(n) + " ";
} else
a[i] = String.valueOf(n) + " ";
n++;
}
for (int i = 0; i < a.length; i++) {//输出日期,每七个换一次行
if (i % 7 == 0) {
System.out.println();
}
System.out.print(a[i]);
}
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com