Calendar类:
Calendar日历类,Calendar类是一个抽象类它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH等日历字段间的转换提供了一些方法
瞬间指定的是一个毫秒值
1. 由于Calendar是抽象类,通过这个方法进行实例化,抽象类多态
public static Calendar getInstance();
public static final int YEAR:年份
public int get (int fied)返回给定日历字段的值
public static final int DATE:月份中的某天
2. 和日历相关的添加方法
public abstract void add(int field,int amount)
//根据日历的规则,为给定的日历字段添加或减去指定的时间量
public void set(int field,int value)将给定的日历字段设置为指定值
代码
import java.util.Calendar;
public class calendarTest1 {
public static void main(String[] args) {
//创建日历对象,抽象类多态
Calendar c=Calendar.getInstance();//java.lang.Object //继承者 java.util.Calendar需要导包
//获取年份,使用日历对象调用成员方法get();
int year=c.get(Calendar.YEAR);
//获取月份,年中的月份,从0 开始取,0——11
int month=c.get(Calendar.MONTH);
//月份中的天
int date=c.get(Calendar.DATE);
System.out.println(year+"年"+(month+1)+"月"+date+"日");
//在控制台输出:3年前的今天
//获取年
c.add(Calendar.YEAR, -3) ;
int year1 = c.get(Calendar.YEAR) ;
int month1 = c.get(Calendar.MONTH) ;
int date1= c.get(Calendar.DATE);
System.out.println(year1+"年"+(month1+1)+"月"+date1+"日");
//5年后的10天前
c.add(Calendar.YEAR, 5) ;
c.add(Calendar.DATE, -10);
int year2 = c.get(Calendar.YEAR);
int month2 = c.get(Calendar.MONTH) ;
int date2 = c.get(Calendar.DATE) ;
System.out.println(year2+"年"+(month2+1)+"月"+date2+"日");
c.set(Calendar.YEAR, 2018) ;
c.set(Calendar.MONTH, 7) ;
c.set(Calendar.DATE, 17) ;
int year3 = c.get(Calendar.YEAR) ;
int month3 = c.get(Calendar.MONTH) ;
int date3 = c.get(Calendar.DATE) ;
System.out.println(year3+"年"+(month3+1)+"月"+date3+"日");
}
}
例子:获取任意一年的二月有多少天:
代码:
import java.util.Calendar;
import java.util.Scanner;
/*
* 获取任意一年的二月有多少天
* 使用键盘录入改进
* 分析:1)键盘录入一个任意一个年份
* 2)创建日历对象
* 3)使用set设置日历:
* 年份就是我们录入的年份,
* 使用日历对象设置年份,月份,日期set(year,2,1):也就是3月1日
* 4)使用add添加方法往前推一天
* 5)输出这一天即可
*/
public class CalendarTest2 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//接收并录入数据
System.out.println("请您任意输入一个年份");
int yyyy=sc.nextInt();
//创建日历对象
Calendar c=Calendar.getInstance();
//去给日历对象设置日历时间
c.set(yyyy,2,1);
//往前推一天
c.add(Calendar.DATE,-1);
System.out.println(c.get(Calendar.DATE));
}
}