一.Calendar类的概述
- 日历类:Calendar 类是一个抽象类,它为特定瞬间与一组如:YEAR,MONTH,DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
二.Calendar类的常见方法
public int get(int field)
:返回给定日历字段的值
YEAR:年
MONTH:月份
DATE:月份中的天
获得的月份加一,才为给定字段月份public abstract void add(int field, int amount)
:根据日历的规则,为给定的日历字段添加或减去指定的时间量public final void set(int year, int month,int date)
:设置新的日历时间,这里的月份其实为month+1
import java.util.Calendar;
public class Demo1 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year+"-"+(month+1)+"-"+date);
c.add(Calendar.YEAR,-3);
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(2013,2,14);
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);
}
}
结果:
2017-8-10
2014-8-10
2013-3-14
三.练习
- 键盘录入一个年份,获取任意一年的二月有多少天
import java.util.Calendar;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Scanner sc = new Scanner(System.in);
System.out.println("输入年份:");
int year = sc.nextInt();
c.set(year, 2, 1);
c.add(Calendar.DATE, -1);
System.out.println(year+"年的2月有"+c.get(Calendar.DATE)+"天");
}
}
结果:
输入年份:
2017
2017年的2月有28天