java 实现 日历 效果

来源:互联网 发布:多媒体软件系统 编辑:程序博客网 时间:2024/05/21 23:42
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);
}

}
代码图片--------------------------------------------

java <wbr>实现 <wbr>日历 <wbr>效果

0 0