首页 > 代码库 > 制作可视化日历,输入日期得到当月 月历表

制作可视化日历,输入日期得到当月 月历表

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

/**
 * 制作可视化日历,输入日期得到当月 月历表
 *
 */
public class CalendarDemo {

    public static void main(String[] args) {
       
        System.out.println("请输入日期:(格式2010-3-10)");
        Scanner sc = new Scanner(System.in);
        String temp = sc.nextLine();
        // 将日期格式化
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = format.parse(temp);// 解析字符串生成日期并接收
            Calendar calendar = Calendar.getInstance();// 实例化一个日历对象
            calendar.setTime(date);// 设置时间
            int day = calendar.get(calendar.DATE);// 声明变量接收
            calendar.set(calendar.DATE, 1);// 设置 日期从1开始

            int maxDate = calendar.getActualMaximum(Calendar.DATE);// 获取当月日期的最大值
            System.out.println("日\t一\t二\t三\t四\t五\t六");
            // 控制输出,当月1号对应的星期之前不显示
            for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) {
                System.out.print("\t");
            }
            // 输入日期,当天就加个特殊符号*,如果是星期六就换行
            for (int i = 1; i <= maxDate; i++) {
                if (i == day) {
                    System.out.print("*");
                }
                System.out.print(i + "\t");
                int w = calendar.get(Calendar.DAY_OF_WEEK);
                if (w == Calendar.SATURDAY) {
                    System.out.print("\n");
                }
                calendar.add(Calendar.DATE, 1);
            }

        } catch (ParseException e) {
            e.printStackTrace();
        }

    }

}

 

制作可视化日历,输入日期得到当月 月历表