public class Calender {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入日期 (例如格式2020-10-20)");
String strDate= sc.next();
//将string转换成calender
java.sql.Date date=java.sql.Date.valueOf(strDate);
Calendar cal=Calendar.getInstance();
cal.setTime(date);
//后续操作
//星期提示
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
//获取本月最大天数
int maxDay = cal.getActualMaximum(Calendar.DATE);
//获取当前日期中的日
int nowDay = cal.get(Calendar.DATE);
//将日期调为本月的1号:
cal.set(Calendar.DATE,1);
//获取这个1号是本月的第几天
int num = cal.get(Calendar.DAY_OF_WEEK);
//前面空出来的天数
int day=num-1;
//引入一个计数器
int count=0;
//将日期前的空格打印出来
for (int i=1;i<=day;i++){
System.out.print("\t");
}
//空出来的日子也要放入计数器
count=count+day;
//从1号开始到maxDay号进行遍历
for (int i=1;i<=maxDay;i++){
if (i==nowDay){//如果遍历的i和当前日子一样的话,后面多拼一个*
System.out.print(i+"*"+"\t");
}else {
System.out.print(i+"\t");
}
count++;//每在控制台输出一个数字,计数器做加1操作
if (count%7==0){//当计数器是7的倍数的时候,就换行操作
System.out.println();
}
}
}
}
控制台打印: