输出某年某月的日历页,通过 键盘输入将年份和月份时间传递到程序中。
import java.util.Calendar;
public class Test01_GetDate {
/**
* 1、输出某年某月的日历页,通过 键盘输入将年份和月份时间传递到程序中。
*/
public static void main(String[] args) {
System.out.println(getCalendar(2017, 7));
}
public static String getCalendar(int year,int month){
StringBuffer sb = new StringBuffer();
sb.append("一\t二\t三\t四\t五\t六\t日\n");
//月份要减一
month -=1;
Calendar cr = Calendar.getInstance();
//设置时间 本月第一天
cr.set(year, month, 0);
//设置一个星期的第一天为星期日
//cr.setFirstDayOfWeek(Calendar.MONDAY);
//本月有多少天
int days = 0;
switch (month) {
case Calendar.JANUARY://1
case Calendar.MARCH://3
case Calendar.MAY://5
case Calendar.JULY://7
case Calendar.AUGUST://8
case Calendar.OCTOBER://10
case Calendar.DECEMBER://12
days = 31;
break;
case Calendar.APRIL://4
case Calendar.JUNE://6
case Calendar.SEPTEMBER://9
case Calendar.NOVEMBER://11
days = 30;
break;
case Calendar.FEBRUARY://2
days = 28;
//能被4整除且又能不能被100整除 是闰年 能直接被400整除也是闰年
if((year % 4 == 0 && year%100 !=0) || year%400==0){
days = 29;
}
break;
default:
break;
}
//当前月份第一天是星期几
int week = cr.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
//打印空出来的日期
for (int i = 1; i < week; i++) {
sb.append("\t");
}
//打印实际日期
for (int i = 1; i <= days; i++) {
sb.append(i+"\t");
if((week+i-1)%7 == 0){
sb.append("\n");
}
}
return sb.toString();
}
}