Calendar实现可视化日历程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/83033804
package com.data;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 通过用户在控制台输入获取当月日历 并着重显示当月第几天 制作可视化日历
 */
public class ViewCalendar {
    public static void main(String[] args) {
        System.out.println("请输入时间,格式年-月-日");
        Scanner scanner = new Scanner(System.in);
        while (true) {
            try {
                //创建用户输入的控制台
                String next = scanner.next();
                //格式化用户时间
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                //将用户输入的时间转化为Date类型
                Date parse = format.parse(next);
                //创建日历类对象
                Calendar calendar = new GregorianCalendar();
                //把当前时间传给日历类Canlendar
                calendar.setTime(parse);
                //设置变量这个月的第几天
                int i2 = calendar.get(calendar.DATE);
                //把当前时间变为几月1号 便于查找星期几是一号
                calendar.set(Calendar.DATE, 1);
                //获取星期一属于周几    --是按照星期天是1 星期一是2 ... 来排序的
                int week = calendar.get(Calendar.DAY_OF_WEEK);
                //获取当月的最后一天
                int actualMaximum = calendar.getActualMaximum(calendar.DATE);

                System.out.println("日\t一\t二\t三\t四\t五\t六");
                for (int i = 1; i <week ; i++) {
                    System.out.print("\t");
                }
                for (int i = 1; i <= actualMaximum; i++) {
                    if (i2==i){
                        System.out.print("*");
                    }

                    System.out.print(i+"\t");
                    //获取当前的星期几
                    int i1 = calendar.get(calendar.DAY_OF_WEEK);
                    //每当为一周就换行
                    if (i1==Calendar.SATURDAY) {
                        System.out.println("");
                    }
                    //每次循环日+1
                    calendar.add(Calendar.DATE,1);
                }

            } catch (ParseException e) {
                System.out.println("输入错误,请按照年-月-日的格式");
                continue;
            }
        }

    }
}

效果图如下

猜你喜欢

转载自blog.csdn.net/qq_40646143/article/details/83033804