欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用java语言画一个可视化日历

程序员文章站 2022-05-07 21:55:22
...

用java语言画一个可视化的日历界

package com.zzit.calFrame;

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

/**
 * 画一个日历界面
 * 
 * @author yufu
 *
 */
public class PaintCalendar {
    public static void main(String[] args) {
        System.out.println("请输入日期(格式:yyyy-MM-dd)");
        Scanner input = new Scanner(System.in);
        String temp = input.nextLine();
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = df.parse(temp);// 字符串转日期
            Calendar calendar = new GregorianCalendar();
            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.println();
                }
                // 循环一次日期加一天
                calendar.add(Calendar.DATE, 1);
            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
相关标签: 日历