您的位置:首页 > 其它

显示日历

2015-11-28 16:05 281 查看
## 题目要求 ##
使用MyCalendar 类显示指定月份的日历程序从命令接收月份和年份。如果运行程序没有指定月份和年份,那么,年份就是当前年份,月份就是当前月份。
## MyCalendar类 ##


import java.awt.*;
import java.util.*;

public class MyCalendar extends GregorianCalendar
{
public int daysInMonth()
{
switch(get(MONTH))
{
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
return 31;
case 1:
if(isLeapYear(get(YEAR)))
return 29;
case 3:
case 5:
case 8:
case 10:
return 31;
default : return 0;
}
}

public String getMonthName()
{
String monthName=null;

switch(get(MONTH))
{
case 0: monthName = "January"; break;
case 1: monthName = "Feburary";   break;
case 2: monthName = "March"; break;
case 3: monthName = "April"; break;
case 4: monthName = "May"; break;
case 5: monthName = "June"; break;
case 6: monthName = "July"; break;
case 7: monthName = "August"; break;
case 8: monthName = "September"; break;
case 9: monthName = "October"; break;
case 10: monthName = "November"; break;
case 11: monthName = "December"; break;
default:
}
return  monthName;
}

}


## 主函数类 ##


import java.util.*;
public class  display
{
static MyCalendar calendar=new MyCalendar();
public static void main(String[] args)
{
int month=calendar.get(MyCalendar.MONTH)+1;
int  year=calendar.get(MyCalendar.YEAR);

if(args.length>2)
System.out.println(args[1]);
else
if(args.length==2)
{
year=Integer.parseInt(args[1]);
month=Integer.parseInt(args[0]);

calendar.set(Calendar.YEAR,year);
calendar.set(Calendar.MONTH,month-1);
}
else
if(args.length==1)
{
month=Integer.parseInt(args[0]);

calendar.set(Calendar.MONTH,month-1);
}
calendar.set(Calendar.DATE,1);

printMonth(year,month);
}

static void printMonth(int year,int month)
{
int startDay=getStartDay();

int numOfDaysInMonth=calendar.daysInMonth();

printMonthTitle(year,month);
printMonthBody(startDay,numOfDaysInMonth);

}
static int getStartDay()
{
return calendar.get(Calendar.DAY_OF_WEEK);
}

static void printMonthTitle(int year,int month)
{
System.out.println("         "+calendar.getMonthName()+", "+year);
System.out.println("-----------------------------");
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
}

static void printMonthBody(int startDay,int numOfDaysInMonth)
{
int i = 0;

for (i = 0; i < startDay-1; i++)
System.out.print("    ");

for (i = 1; i <= numOfDaysInMonth; i++) {
if (i < 10)
System.out.print("   "+i);
else
System.out.print("  "+i);

if ((i + startDay - 1) % 7 == 0)
System.out.println();
}

System.out.println("");
}
}


## 程序运行结果(未指定年份和月份) ##




## 程序运行结果(指定年份和月份) ##

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: