JAVA - 利用calendar类做出日历
效果
输入年份、月份,输出日历。
代码
package com.software.oop;
import java.util.Calendar;
import java.util.Scanner;
public final class MyCalendar {
private Calendar calendar;
//field:域 对应 字段(属性)
public MyCalendar(){
//对象实例化,抽象类不能用new调用,只能调用抽象类的子类或者查找参考文档中能调用的。
calendar = Calendar.getInstance();
}
/*
*1.一个月的第一天是星期几
*2.判断是否为闰年
*3.求一个月的天数
*/
//判断是否为闰年
public boolean isLeapYear(int year){
if (year % 400 == 0||(year % 4 == 0 && year %100 != 0))
return true;
else
return false;
}
//判断月份天数
public int getDays(int year,int month) {
if(month == 1||month == 3 || month == 5 ||month == 7 || month == 8 ||month == 10 || month == 12)
return 31;
if(isLeapYear(year) && month ==2)
return 29;
if(!isLeapYear(year) && month == 2)
return 28;
if(month == 4||month == 6||month == 9||month == 11)
return 30;
return 0;
}
public void display() {
int firstDay;//定义临时变量
int flag = 0;//控制换行
//输入
int year,month;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
year = scanner.nextInt();
System.out.println("请输入月份(1-12):");
month = scanner.nextInt();
//定位到输入的年月份
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
System.out.print("\t------------");
System.out.println(calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月-------------");
System.out.println("\n日\t一\t二\t三\t四\t五\t六");
//定位到本月1日
calendar.set(Calendar.DATE, 1);
//获取到本月1日是周几
firstDay = calendar.get(Calendar.DAY_OF_WEEK);
//System.out.println(firstDay);
//输出本月1日前的空白
for (int i = 1; i < firstDay; i++) {
System.out.print("\t");
flag++;
}
//输出日与日之间的空格
for (int i = 1; i <= getDays(year, month); i++) {
System.out.print(i);
System.out.print("\t");
flag++;
//输出换行
if (flag % 7 == 0) {
System.out.println("\n");
}
}
/*calendar.set(Calendar.YEAR, 1995);//set修改
System.out.print("现在是"+calendar.get(Calendar.YEAR)+"年");
System.out.print(calendar.get(Calendar.MONTH)+1+"月");//月份从0开始,所以加1
System.out.print(calendar.get(Calendar.DATE)+"日");
System.out.print(calendar.get(Calendar.HOUR_OF_DAY)+"时");
System.out.print(calendar.get(Calendar.MINUTE)+"分");
System.out.print(calendar.get(Calendar.SECOND)+"秒");*/
}
public static void main(String[] args) {
MyCalendar myCalendar = new MyCalendar();
myCalendar.display();
}
}
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »