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

用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();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/liyufu318/article/details/72858075
今日推荐