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

来源:互联网 发布:linux 修改网络地址 编辑:程序博客网 时间:2024/05/21 22:50

用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();        }    }}
原创粉丝点击