public static void main(String[] args){
for(int i=1;i<13;i++){
printYear(2019,i);
}
}
//判断是否是闰年
public static boolean isRun(int year){
if(year%4==0&&year%400!=0){
return true;
}else{
return false;
}
}
//获取当前年月的天数
public static int getDays(int year,int month){
int days = 0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31;
break;
case 2: days = isRun(year)? 29 :28;
break;
case 4:
case 6:
case 9:
case 11: days=30;
break;
}
return days;
}
//输出日历
public static void printYear(int year,int month){
int day = getDays(year,month);//
int week = getWeek(year,month);//计算本月1号是星期几
int count = 0; //计算本日是月第几天,默认开始是周日,不管存不存在
System.out.println("\t\t\t "+year+"年"+month+"月");
System.out.println("\t日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=day;i++){
if(i==1){
//需要空几格
for(int j=1;j<week;j++){
System.out.print("\t");
}
System.out.print("\t"+i);
count = week;
//System.out.print("["+count+"]");
}else{
if(count%7==0){
System.out.println();
}
System.out.print("\t"+i);
count++;
}
}
System.out.println("\n\t==================================================");
}
//计算1号是星期几
public static int getWeek(int year,int month){
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH,month-1);//月份范围是0~11,
cal.set(Calendar.DATE,1);
return cal.get(Calendar.DAY_OF_WEEK);
}