package com.test.test02;import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;public class Test08 {//这是一个main方法,是程序的入口public static void main(String[] args) {//录入日期的StringScanner sc = new Scanner(System.in);System.out.print("请输入你想要查看的日期:(提示:请按照例如2012-5-6)");String strDate = sc.next();System.out.println(strDate);//String--->Calendar//分解://String--->java.sql.Datejava.sql.Date date = java.sql.Date.valueOf(strDate);//java.sql.Date date = java.sql.Date.valueOf("2019-2-21");//java.sql.Date--->Calendar/* //第一种写法GregorianCalendar gregorianCalendar = new GregorianCalendar();gregorianCalendar.setTime(date);*///第二种写法Calendar cal = Calendar.getInstance();cal.setTime(date);//后续操作//星期提示System.out.println("日\t一\t二\t三\t四\t五\t六\t");//获取本月的最大天数int maxDay = cal.getActualMaximum(Calendar.DATE);//System.out.println(maxDay); //31//获取当前日期中的日int nowDay = cal.get(Calendar.DATE);//将日期调整为本月的1号cal.set(Calendar.DATE,1);//获取这个一号是本周的第几天int num = cal.get(Calendar.DAY_OF_WEEK);//System.out.println("获取这个一号是本周的第几天"+num);//前面空出来的天数为int day = num -1;//引入一个计数器int count = 0; //计数器最开始值为0//在日期前将空格打印出来for(int i=1;i<=day;i++) {System.out.print("\t");}count = count+day;//遍历:从1号到maxDay进行遍历for(int i=1;i<=maxDay;i++) {/*//第一种写法count++; //每在控制台输出一个数字,计数器做加1操作if(count%7 == 0) {//当计数器的个数是7的倍数的时候,就换行操作。if(i == nowDay) {System.out.print(i+"*"+"\t");}else {System.out.print(i + "\n");}}else {if(i == nowDay) {System.out.print(i+"*"+"\t");}else {System.out.print(i + "\t");}}*///第二种写法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();}}//for end}
}