新手求帮助。。。月历的问题
//月历
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class MonthlyCalendar {
/**
* @param args
*/
public static boolean isLeapYear(int year) //判断指定年份是否闰年,静态方法
{
return year%400==0 || year%100!=0 && year%4==0;
}
public static int daysOfMonth(int year, int month) //返回指定年月的天数,静态方法
{
switch (month) //计算每月的天数
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
case 4: case 6: case 9: case 11: return 30;
case 2: return isLeapYear(year)?29:28;
default: return 0;
}
}
public String toString()
{
Calendar now=Calendar.getInstance();
int year=now.get(Calendar.YEAR);
int month=now.get(Calendar.MONTH)+1;
now.set(year, month-1, 1);
int week=now.get(Calendar.DAY_OF_WEEK)-1;
String str=year+"年"+month+"月的月历\n 日 一 二 三 四 五 六\n";
str+=String.format("%"+4*week+"c",' ');
int days= daysOfMonth(year,month);
for(int i=1;i<=days;i++)
{
str+=String.format("%4d", i);
if((week+i)%7==0)
str+="\n";
}
return str;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SimpleDateFormat sdf=new SimpleDateFormat("yyyy 年 MM 月 dd 日 EEEEE a hh 时 mm 分 ss 秒");
System.out.println(sdf.format(new Date()));
System.out.println(new MonthlyCalendar().toString());
}
}
[解决办法]
你想问什么?
Calendar.MONTH 取值 0-11 分别代表 1月到12月
Calendar.DAY_OF_WEEK 取值 1-7 分别代表 星期日到星期六