1 package h2; 2 import java.util.Scanner; 3 import java.util.Calendar; 4 public class H2 { 5 6 7 public static void main(String[] args) { 8 Scanner input=new Scanner(System.in); 9 System.out.println("请输入年份"); 10 int year=input.nextInt(); 11 System.out.println("请输入月份"); 12 int month=input.nextInt(); 13 int flag=0; 14 int days=0;//初始化某年的某月共几天 15 //判断是否是闰年 16 if((year%4==0&&year%100==0)||(year%400==0)){ 17 flag=1; 18 }else{ 19 flag=0; 20 } 21 //输出某年的某月共几天 22 switch(month){ 23 case 4: 24 case 6: 25 case 9: 26 case 11: 27 days=30; 28 break; 29 case 2: 30 if(flag==1){ 31 days=29; 32 }else{ 33 days=28; 34 } 35 break; 36 default: 37 days=31; 38 } 39 //计算某年某月的1月1日是星期几 40 Calendar c=Calendar.getInstance(); 41 c.set(year, month-1,1); 42 int week=c.get(Calendar.DAY_OF_WEEK);//定义week获取某年某月的1月1日是星期几 43 44 System.out.println(); 45 System.out.println(); 46 System.out.println(" "+year+"年"+month+"月"); 47 System.out.println("一 二 三 四 五 六 日"); 48 //1月1日是星期week,前面就有week-1个空格 49 //例2017/1/1是星期5,前面就有4个空格 50 for(int j=1;j<week-1;j++){ 51 System.out.print(" "); 52 } 53 for(int i=1;i<=days;i++){ 54 //输出日历 55 System.out.print(i+" "); 56 //实现每七天换行 57 //注意某月1日前的空格,如果某月1日是星期week-1,则前面应该输出week-2个空格 58 if((i+week-2)%7==0){ 59 System.out.println(); 60 } 61 } 62 } 63 64 }