import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入日期(如2018-12-07):");
Scanner sc=new Scanner(System.in);
String riqi= sc.next();
//将接收到的字符串转成日期并设置
Calendar cal=Calendar.getInstance();
cal.setTime(java.sql.Date.valueOf(riqi));
//获取本月第一天是星期几
int startDay=cal.get(Calendar.DAY_OF_WEEK);
/*
* 日历表头
*/
System.out.println("星期天"+"\t星期一"+"\t星期二"+"\t星期三"+"\t星期四"+"\t星期五"+"\t星期六");
/*
* 日历空格
* 记住:星期天是一天的开始
*/
for(int i=1;i<startDay+1;i++) {
System.out.print("\t");
}
/*
* 日历日期
* cal.getActualMaximum(Calendar.DATE) 获取本月的最大天数
*/
for(int i=0;i<cal.getActualMaximum(Calendar.DATE);i++) {
System.out.print(" ");
System.out.print(i+1);
//如果正好打印到当天对应的日期,则加一个*号
if((i+1)==cal.get(Calendar.DATE))
System.out.print("*");
System.out.print("\t");
//每打印一周换行
if((startDay+i+1)%7==0)
System.out.println();
}
}
}
运行效果:
请输入日期(如2018-12-07):
2018-12-07
星期天 星期一 星期二 星期三 星期四 星期五 星期六
1
2 3 4 5 6 7* 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31