直接上代码—

import java.util.Calendar;
import java.util.Scanner;

/**
* @author : Gavin
* @date: 2021/7/9 - 07 - 09 - 21:50
* @Description: baozhuang
* @version: 1.0
*/
public class Rili {
public static void main(String[] args) {
System.out.println("请输入您要查询的日期--格式(2021-07-09)");
Scanner sc = new Scanner(System.in);
String strTime=sc.next();//接收用户输入
//将字符转转换为Date
java.util.Date date= java.sql.Date.valueOf(strTime);
System.out.print("日\t一\t二\t三\t四\t五\t六\n");

//打印天数---获得给的日期的天数--转换成Calendar类
Calendar cal=Calendar.getInstance();
cal.setTime(date);//从0开始为1月,
int nowDay=cal.get(Calendar.DAY_OF_MONTH);
int maxday=cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获得月份的天数
//System.out.println(maxday);
cal.set(Calendar.DAY_OF_MONTH,1);//设置当月天数为1
// System.out.println(cal);
int nullPoint=cal.get(Calendar.DAY_OF_WEEK);//获得一个周的第2天--周一
//打印的时候空(nullPoint-1 ) 个空格
//System.out.println(nullPoint);
int count =0;
for (int i = 0; i <nullPoint-1 ; i++) {
System.out.print("\t");
}
count=count+nullPoint-1;
for (int i = 1; i <=maxday ; i++) {
if(i==nowDay){
System.out.print(i+"*"+"\t");
}else{
System.out.print(i+"\t");
}

count++;
if(count%7==0){
System.out.println();
}
}
sc.close();
}
}

主要是注意日期月份有些是从0开始的,西方跟东方的差别吧!!
思路已经写在了代码里;虽然有时候不能一下在写出来,要不断调试;

滚回去改Bug说的就是这个嘛???