/**
* Calendar.java
* writeby jsp update2006-11-2
* util class study
*
*/
import java.util.*;
class MonthErro extends Exception
{
MonthErro()
{
super("月份越界");
}
}
class YaerErro extends Exception
{
YaerErro()
{
super("年份越界");
}
}
class CalendarTest
{
//判断是否是闰年
public static boolean loop(int year)
{
if(((year % 4 ==0)&&(year % 100 !=0)) || (year % 400 ==0))
{
return true;
}
else
{
return false;
}
}
//确定每月的天数
public static int count(int month,int year)
{
if(month == 2)
{
if(loop(year))
{
return 29;
}
else
{
return 28;
}
}
else if((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12))
{
return 31;
}
else
{
return 30;
}
}
public static void dis(int days,int week)
{
System.out.println("/t日/t一/t二/t三/t四/t五/t六");
System.out.print("/t");
for(int i = 0; i < week; i++)
{
System.out.print("/t");
}
int week1 = week;
for(int j = 1; j <= days ; j++)
{
if(week1 == 7)
{
System.out.println();
System.out.print("/t");
week1 = 0;
}
System.out.print(j+"/t");
week1++;
}
}
public static void main(String[] args)
{
try{
if(args.length!= 2)
{
Calendar today = Calendar.getInstance();
int month = today.get(Calendar.MONTH)+1;
int year = today.get(Calendar.YEAR);
GregorianCalendar todayWeek = new GregorianCalendar(year,month-1,1);
int week = todayWeek.get(Calendar.DAY_OF_WEEK)-1;
int days = count(month,year);
System.out.println("/t"+year+"-"+month);
dis (days,week);
}
else
{
int month = Integer.parseInt(args[0]);
if((month > 12) || (month < 1))
{
throw new MonthErro();
}
int year = Integer.parseInt(args[1]);
if(year < 0)
{
throw new YaerErro();
}
GregorianCalendar today = new GregorianCalendar(year,month-1,1);
int week = today.get(Calendar.DAY_OF_WEEK)-1;
int days = count(month,year);
System.out.println("/t"+year+"-"+(month));
dis (days,week);
}
}catch ( MonthErro me)
{
System.out.println("Exception in CalendarTest in main:"+me.toString());
me.printStackTrace();
}catch ( YaerErro ye)
{
System.out.println("Exception in CalendarTest in main:"+ye.toString());
ye.printStackTrace();
}
catch(Exception e)
{
System.out.println("Exception in CalendarTest in main:"+e.toString());
e.printStackTrace();
}
}
}