代码如下:
public static void main(String[] args) {
getCalendar();
}
public static void getCalendar(){
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
int y=input.nextInt();
System.out.println("请输入月份:");
int m = input.nextInt();
System.out.println(y+"年"+m+"月");
System.out.println("一\t二\t三\t四\t五\t六\t日");
Calendar c1 = Calendar.getInstance();
c1.set(y, m-1, 1);//getInstance()方法获得月份对应国内月份减一
//获得当月最大天数
int maxday = c1.getActualMaximum(Calendar.DATE);
// 获得当月第一天的星期
int week =c1.get(Calendar.DAY_OF_WEEK)-1;//此方法获得的星期数对应国内星期数加一,为显示我们的星期数需要-1
if (week==0){
week=7;
}
StringBuilder sb = new StringBuilder();
//遍历当月第一天之前的空格
for (int i = 1; i < week; i++) {
sb.append("\t");
}
//遍历第一天之后所有日期
int count= week;
for (int i = 1; i <= maxday; i++) {
sb.append(i+"\t");
count++;
if (count==8) {
sb.append("\n");
count=1;
}
}
System.out.println(sb.toString());
}
打印结果: