请各位高手帮我看一下这个java程序!编译正确,但是没有输出结果!

import java.util.Calendar;
public class OutputCalendar
{
int allday;
Calendar cal;
public OutputCalendar(int m,int n)
{
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, m);
cal.set(Calendar.MONTH,n-1);
cal.set(Calendar.DATE,1);
if((m%4==0 && m%100!=0 || m % 400==0)&& n==2 )
days[1]++;
allday=days[n-1];
}
public void print()
{
System.out.println("------------"+cal.get(Calendar.YEAR)+"年"+(cal.get(Calendar.MONTH)+1)+"月份------------\n");
System.out.println("SUN MON TUR WED THU FRI SAT");

int first=cal.get(Calendar.DAY_OF_WEEK);
int i=0;
for(i=1;i<first;i++)
System.out.print(" ");
for(i=1;i<=allday;i++)
{
if(i<10) System.out.print(" ");
System.out.print(" "+i);
System.out.print(" ");
if(first++%7==0)
System.out.println("\n ");
}
}
public static void main(String[] args) {
int year = 0, month = 0;
if (args.length >= 2) {
try
{
year=Integer.parseInt(args[0]);
month=Integer.parseInt(args[1]);
}
catch(NumberFormatException e)
{
System.out.println("运行提供的年月信息不是合法的数值!");
System.exit(0);
}
}
else
{
System.out.println("没有提供输出处理的年月信息!");
System.exit(0);
}
OutputCalendar myjava=new OutputCalendar(year,month);
myjava.print();
}

}

1。构造方法里Calendar cal = Calendar.getInstance();
把Calendar去掉,即cal = Calendar.getInstance();
2。排版不好
在print()里
for(i=1;i<first;i++)
System.out.print(" "); 因该输出4个空格。
System.out.print(" ");
如果你使用IDE运行,估计只输出“没有提供输出处理的年月信息!”。你应该配置运行参数。
附:eclipse里运行时配置:右键点击你的源程序,在弹出菜单里选择“Run As”->"Run Configurations...",点击"Arguments"选项卡,在"Program arguments:"下的文本框输入“2008 2”中间以空格分开。点击“Run”运行,OK。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-03
我其他的地方没看了就看了你的main方法
你都没给他值 当然没结果
year=Integer.parseInt(args[0]);
month=Integer.parseInt(args[1]);
这里year ,month都是0啊
相似回答
大家正在搜