java 实现 日历 效果

    xiaoxiao2021-04-18  67

    package com.software.oop; import java.util.Calendar; import java.util.Scanner; public final class MyCalendar2 { private Calendar calendar; //定义一个Calendar类的属性 private int year,month; //调用抽象类Calendar的方法 public   MyCalendar2() { calendar = Calendar.getInstance(); } //从键盘输入年份和月份 public void input() { Scanner scanner = new Scanner(System.in); System.out.println("请输入年份:"); year = scanner.nextInt(); System.out.println("请输入月份(1-12):"); month = scanner.nextInt(); } //判断是否闰年 和 月份的天数 public int Judgment() { if (month == 2) { if (year % 400 == 0 || (year %4 ==0 && year % 100 != 0)) { return 29; } return 28; } if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { return 31; } return 30; } //设置年份和月份 public void setTime() { calendar.set(calendar.YEAR, year); calendar.set(calendar.MONTH, month-1); } //显示,输出日历 public void show() { int flag = 0; System.out.println(" -----"+calendar.get(calendar.YEAR)+"年"+(calendar.get(calendar.MONTH)+1)+"月-----"); System.out.println("日\t一\t二\t三\t四\t五\t六"); //下面两排-----非常重要的地方,将每个月的第一天,定位到那一个周的第几天---也就是说,要在前面输出几个空格 calendar.set(calendar.DAY_OF_MONTH,1); //由于DAY_OF-MONTH 与 DATE 是同义词,所以此处,,可以替换为 DATE int firstDay = calendar.get(calendar.DAY_OF_WEEK); for (int i = 1; i < firstDay; i++) { System.out.print("\t"); flag++; } for (int i = 1; i <= Judgment(); i++) { System.out.print(i+"\t"); flag++; if (flag % 7 == 0) { System.out.println(); } } } //判断 月份 和 年份是否符合 规范 public void use(MyCalendar2 mycalendar2) { mycalendar2.input(); if (month >=1 && month <=12 && year >0) { mycalendar2.Judgment(); mycalendar2.setTime(); mycalendar2.show(); }else { System.out.println("请输入正确的年份或月份"); } } public static void main(String[] args) { MyCalendar2 mycalendar2 = new MyCalendar2(); mycalendar2.use(mycalendar2); } } 代码图片--------------------------------------------
    转载请注明原文地址: https://ju.6miu.com/read-675233.html

    最新回复(0)