#Java基础 #Calendar #控制台打印日历

java初学者,写的不好,欢迎大佬指导.

效果

#控制台打印日历

main

package com.test1;
import java.util.Scanner;
// 输入日期 yyyy-MM-ss 打印日历
public class CalendarTest1 {
    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("fm yyyy-MM-dd ");
            String scDate = sc.next();
            CalendarPrint c = new CalendarPrint();
            c.printCalendar(scDate);
        } catch (Exception e) {
            e.printStackTrace();
//            e.printStackTrace(System.err);
            System.out.println("时间格式为 yyyy-MM-dd");
        }
    }
}

CalendarPrint

package com.test1;

import java.util.Calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class CalendarPrint {
    private final Calendar cal = Calendar.getInstance();
    private int day;
    private int week;
    private int MonthMaxDays;
    private int MonthMinDays;
    private final String[] weeks = {"日", "一", "二", "三", "四", "五", "六"};

    private String sy;
    private String sm;

    private int CalcWeek() {
        String sd = Integer.toString(MonthMinDays);
        String sysmsd = sy + "-" + sm + "-" + (sd.length() >= 2 ? sd : "0" + sd);
        Calendar cal1 = calendarGetInstanceSetTime(jsdvla(sysmsd));
        return cal1.get(Calendar.DAY_OF_WEEK);
    }

    private int CalcWeek(int i) {
        String sd = Integer.toString(i);
        String sysmsd = sy + "-" + sm + "-" + (sd.length() >= 2 ? sd : "0" + sd);
        Calendar cal1 = calendarGetInstanceSetTime(jsdvla(sysmsd));
        return cal1.get(Calendar.DAY_OF_WEEK);
    }

    private java.sql.Date jsdvla(String date) {
        return java.sql.Date.valueOf(date);
    }

    private Calendar calendarGetInstanceSetTime(java.sql.Date date) {
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(date);
        return cal1;
    }

    public void printCalendar(String d) throws Exception {
        try {
            if (d.isEmpty() || "\"\"".equals(d)) {
                throw new Exception();
            }

            cal.setTime(jsdvla(d));
            day = cal.get(Calendar.DAY_OF_MONTH);
            week = cal.get(Calendar.DAY_OF_WEEK);
            MonthMaxDays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
            MonthMinDays = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
//            sy = String.valueOf(cal.get(Calendar.YEAR));
//            sm = String.valueOf(cal.get(Calendar.MONTH));
//            ||
            sy = Integer.toString(cal.get(Calendar.YEAR));
            sm = Integer.toString(cal.get(Calendar.MONTH) + 1);

            for (String i:weeks) {
                System.out.print("日".equals(i) ? i : "\t" + i);
            }

            System.out.println();

            for (int j = 1; j < CalcWeek() - 1; j++) {
                System.out.print("\t");
            }

            for (int i = MonthMinDays; i <= MonthMaxDays; i++) {
                int cw = CalcWeek(i);
                if (day == i) {
                    System.out.print(cw != 1 ? "\t" + i + "*" : i + "*");
                } else {
                    System.out.print(cw != 1 ? "\t" + i : i);
                }
                if (cw == 7) {
                    System.out.println();
                }
            }
        } catch (Exception e) {
            throw new Exception();
        }
    }

    public String getSm() {
        return sm;
    }

    public void setSm(String sm) {
        this.sm = sm;
    }

    public String getSy() {
        return sy;
    }

    public void setSy(String sy) {
        this.sy = sy;
    }

    public String[] getWeeks() {
        return weeks;
    }

    public int getMonthMinDays() {
        return MonthMinDays;
    }

    public void setMonthMinDays(int monthMinDays) {
        MonthMinDays = monthMinDays;
    }

    public int getMonthMaxDays() {
        return MonthMaxDays;
    }

    public void setMonthMaxDays(int monthMaxDays) {
        MonthMaxDays = monthMaxDays;
    }

    public int getWeek() {
        return week;
    }

    public void setWeek(int week) {
        this.week = week;
    }

    public int getDay() {
        return day;
    }

    public void setDay(int day) {
        this.day = day;
    }

    public Calendar getCal() {
        return cal;
    }

    public CalendarPrint() {}
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容