用Java编日历程序 20
这是写的设置日历格式的一段,那位高手能帮忙改一下。看看这个思路能否行的通。真的很感谢!publicvoidnewCalendar(inta,intb){calendar....
这是写的设置日历格式的一段,那位高手能帮忙改一下。看看这个思路能否行的通。真的很感谢!
public void newCalendar(int a,int b){
calendar.set(a,b,1);
int day=calendar.get(Calendar.DAY_OF_WEEK);
for(int m=0;m<day;m++){
date[0][m]=""; //加空格
}
for(int r=day-1;r<7;r++){
date[0][r]=String.valueOf(n); //131,132
n++;
}
p=8-day;
t=calendar.getActualMaximum(b);
for(int row=1;row<6;row++){
for(int line=0;line<7;line++){
date[row][line]=String.valueOf(p);
p++;
if(p>calendar.getActualMaximum(b))
break;
}
}
}}
public void actionPerformed(ActionEvent e){
if(e.getSource()==button){
try{
q=Integer.parseInt(field.getText());
z=number.getSelectedIndex();
calendar.set(q,z,1);
int day=calendar.get(Calendar.DAY_OF_WEEK);
for(int m=0;m<day;m++){
date[0][m]=""; //加空格
}
for(int r=day-1;r<7;r++){
date[0][r]=String.valueOf(n); //131,132
n++;
}
p=8-day;
t=calendar.getActualMaximum(z);
for(int row=1;row<6;row++){
for(int line=0;line<7;line++){
date[row][line]=String.valueOf(p);
p++;
if(p>calendar.getActualMaximum(z))
break;
}
}
} 展开
public void newCalendar(int a,int b){
calendar.set(a,b,1);
int day=calendar.get(Calendar.DAY_OF_WEEK);
for(int m=0;m<day;m++){
date[0][m]=""; //加空格
}
for(int r=day-1;r<7;r++){
date[0][r]=String.valueOf(n); //131,132
n++;
}
p=8-day;
t=calendar.getActualMaximum(b);
for(int row=1;row<6;row++){
for(int line=0;line<7;line++){
date[row][line]=String.valueOf(p);
p++;
if(p>calendar.getActualMaximum(b))
break;
}
}
}}
public void actionPerformed(ActionEvent e){
if(e.getSource()==button){
try{
q=Integer.parseInt(field.getText());
z=number.getSelectedIndex();
calendar.set(q,z,1);
int day=calendar.get(Calendar.DAY_OF_WEEK);
for(int m=0;m<day;m++){
date[0][m]=""; //加空格
}
for(int r=day-1;r<7;r++){
date[0][r]=String.valueOf(n); //131,132
n++;
}
p=8-day;
t=calendar.getActualMaximum(z);
for(int row=1;row<6;row++){
for(int line=0;line<7;line++){
date[row][line]=String.valueOf(p);
p++;
if(p>calendar.getActualMaximum(z))
break;
}
}
} 展开
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]);
}
}
}
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]);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
博思aippt
2024-07-20 广告
2024-07-20 广告
博思AIPPT是基于ai制作PPT的智能在线工具,它提供了4种AI制作PPT的方式,包括AI生成大纲、AI直接生成PPT、文本生成PPT、AI提炼word文档生成PPT,一站式集成多种AI生成PPT的方式,可满足办公用户的不同需求和使用场景...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询