import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

import com.yunsi.day15.dateuse8.DateUtil;

/**
 * 可视化日历,打印当前月
 * @author Administrator
 *
 */
public class Test05 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入日期:(yyyy-MM-dd)");
        String s = input.next();

//        String s="2019-10-28";
        //String--->Date
使用自己编写的工具类将输入的String类转化为Date对象 Date date = DateUtil.getDateFromStr(s, "yyyy-MM-dd"); //Date--->Calendar Calendar cal = new GregorianCalendar(); cal.setTime(date); //获取当前月的最大天数 ,确定循环的终止条件 int maxDays = cal.getActualMaximum(Calendar.DATE);
System.out.println(
"当前月的最大天数:"+maxDays); //获取当前天 int today = cal.get(Calendar.DATE); System.out.println("今天:"+today); //将日期设置成1号,然后获取周索引 1号前面\t的个数= 1号的周索引-1 cal.set(Calendar.DATE, 1); int weekIndex = cal.get(Calendar.DAY_OF_WEEK); System.out.println("1号对应的周索引:"+weekIndex); System.out.println("日\t一\t二\t三\t四\t五\t六"); //先打印1号前面的\t for(int i=1;i<weekIndex;i++){ System.out.print("\t"); } for(int i=1;i<=maxDays;i++){ //如果当前周索引==周六,打印\n 换行 if(i==today){ System.out.print("*"); } System.out.print(i+"\t"); if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){ System.out.print("\n"); } //每打印1天,日期加1 // System.out.println("当前的日期:"+cal.get(Calendar.DATE)); cal.add(Calendar.DATE, 1); } } }

结果

02-01 00:54