public class texttime {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
//获取日历对象
Calendar calendar = Calendar.getInstance();
//格式化日期
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
while (true){
System.out.println("请输入格式为yyyy-MM-dd的日期");
String dateStr = scanner.next();
// 将用户输入的日期转为日期类
Date date = simpleDateFormat.parse(dateStr);
// 将日期类设置进日历类
calendar.setTime(date);
// 获取本月总共多少天
int totalDay = calendar.getActualMaximum(Calendar.DATE);
// 设置日历类时间为本月的第一天
calendar.set(Calendar.DAY_OF_MONTH,1);
// 获取第一天对应的星期 ps:星期天是1,星期一是2 以此类推
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 打印当月日历头部
System.out.println("日\t一\t二\t三\t四\t五\t六");
// 用于记录"\t"的数量 (每个"\t"代表一个位置 七个位置需换行
int t = 0;
// 打印"\t"使1号与对应的星期几对齐
for (int j = 1;j<dayOfWeek;j++){
System.out.print("\t");
t++;
}
// 循环显示日期
for (int i = 1 ;i<=totalDay; i++){
// 当有7个"\t"时 说明一行写满了 换行 注:如果1号为周日,t=0,t%7==0为true 会多一个换行 所以&& t!=0
if (t%7==0 && t!=0){
System.out.println("");
}
System.out.print(i+"\t");
t++;
}
System.out.println("");
}
}
}