求助 关于Calendar的问题

缥渺孤鸿 2011-11-19 12:38:08
请设计和实现一个日历输出程序, (1)用户输入一个月份,给出当年某月的日历,日历要求每个月显示4~5行,每行显示7列,星期一到星期日 (2)用户输入一个年份,系统自动输出一年的详细的日历,要求每行同时显示三个月,月日历显示方式同(1)。
import java.util.*;

public class Question3{
static int[] day={31,28,31,30,31,30,31,31,30,31,30,31};
static String[] weeks={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
public static void main(String[] args){
try{
Scanner scan=new Scanner(System.in);
System.out.println("请入一个年份和一个月份:");
int year=scan.nextInt();
int month=scan.nextInt();
monthCalendar(year,month-1);
System.out.println("请入一个年份:");
year=scan.nextInt();
yearCalendar(year);
}
catch(Exception e){
e.printStackTrace();
}
}
public static void monthCalendar(int year,int month){
Calendar c=GregorianCalendar.getInstance();
boolean isLeapYear=false;
if(year%400==0||year%4==0&&year%100!=0){
isLeapYear=true;
day[1]=29;
}
System.out.println("------------"+year+"年"+(month+1)+"月------------");
System.out.println("SUN MON TUE WED THU FRI SAT");
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DATE,1);
int first=c.get(Calendar.DAY_OF_WEEK);
int i;
for(i=1;i <first;i++) System.out.print(" ");
for(i=1;i <=day[month];i++){
if(i <10) System.out.print(" ");
System.out.print(" "+i);
System.out.print(" ");
if(first++%7==0) System.out.println();
}
System.out.println("");
if(isLeapYear) day[1]=28;
}
public static void yearCalendar(int year){
Calendar c=GregorianCalendar.getInstance();
boolean isLeapYear=false;
if(year%400==0||year%4==0&&year%100!=0){
isLeapYear=true;
day[1]=29;
}

for(int month=0;month<12;month++){
System.out.println("------------"+year+"年"+(month+1)+"月------------");
System.out.println("SUN MON TUE WED THU FRI SAT");
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DATE,1);
int first=c.get(Calendar.DAY_OF_WEEK);
int i;
for(i=1;i <first;i++) System.out.print(" ");
for(i=1;i <=day[month];i++){
if(i <10) System.out.print(" ");
System.out.print(" "+i);
System.out.print(" ");
if(first++%7==0) System.out.println();
}
System.out.println("");
if(isLeapYear) day[1]=28;
}


}
}
请问怎么样才能让3个月历在同一行 能帮我改一下吗 谢谢了
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangtu 2011-12-06
  • 打赏
  • 举报
回复
一个月了,人哪里去了?
liangtu 2011-11-19
  • 打赏
  • 举报
回复
用mydate97多好,功能强大,很方便。

23,407

社区成员

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

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