需求:键盘录入任意一个年份,判断该年是闰年还是平年
分析:
1、键盘录入年Scanner
2、创建Calendar c = Calendar.getInstance();
3、通过set方法设置为那一年的3月1日
4、将日向前减去1
5、判断日是多少天,如果是29天返回true否则返回false
package com.liuyue.java;
import java.util.Calendar;
import java.util.Scanner;
public class LeapOrCommonYear {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份,判断该年份是闰年还是平年:");
int year = sc.nextInt();
boolean b = getYear(year);
if(b){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"是平年");
}
}
public static boolean getYear(int year){
Calendar c = Calendar.getInstance();
//设置的时间为对应年份的3月1日
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH,-1);
return c.get(Calendar.DAY_OF_MONTH)==29;
}
}
Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化
Calendar rightNow = Calendar.getInstance();
1、可以通过字段获取rightNow代表的时间的各个值
int get(int field) field为Calendar类中的常量字段值
2、返回给定日历字段的值。
通过字段获取年 rightNow.get(Calendar.YEAR);
2.1通过字段获取月,从0开始编号
rightNow.get(Calendar.MONTH);
2.2通过字段获取日,月中的第几天
rightNow.get(Calendar.DAY_OF_MONTH);
2.3通过字段获取星期中的日期,周日为第一天,周六是最后一天
rightNow.get(Calendar.DAY_OF_WEEK);
通过查表法,返回正确的星期
public static String getWeek(int week){
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
对6月6日 通过函数改为06月06日
public static String getNum(int num)
{
return num > 9 ? ""+num : "0" + num ;
}
System.out.println(rightNow.get(Calendar.YEAR) + "年" + getNum((rightNow.get(Calendar.MONTH)+1)) + "月" + getNum(rightNow.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(rightNow.get(Calendar.DAY_OF_WEEK))) ;