1.Calendar类
Calendar是一个抽象类。时间点(某一时刻)
getInstance()
//获取日历(使用默认时区和语言环境获取一个日历)。不是通过子类创建,而是通过父类方法getInstance()返回一个calendar
public int get(int field);//参数是日历字段值 ,月份的统计是从0到11的
void set(); //设置日历字段。
abstract void add(int field,int amount);
//根据日历规则,为给定的日历字段添加或者减去指定的时间量。
以下返回值类型为int:
年: calendar.get(Calendar.YEAR);
月: calendar.get(Calendar.MONTH);
日: calendar.get(Calendar.DAY_OF_MONTH);
星期: calendar.get(Calendar.DAY_OF_WEEK);
时: calendar.get(Calendar.HOUR_OF_DAY);
分: calendar.get(Calendar.MINUTE);
秒: calendar.get(Calendar.SECOND);
2.示例代码
2.1 Calendar类的日历方法练习
import java.util.*;
import java.text.*;
class CalendarDemo
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
System.out.println("以当前具体时间为:");
printCalendar(c); //调用日历方法
System.out.println();//换行
System.out.println();
//c.set(2013,5,15); 设置时间
c.add(Calendar.YEAR,5);//在当前时间基础上加5年
c.add(Calendar.MONTH,5);//在当前时间基础上加5个月
c.add(Calendar.DAY_OF_MONTH,-5);//在当前时间基础上减五天
System.out.println("以当前时间为基础,5年5个月后,再减去5天的具体日期时间是:");
printCalendar(c); //调用日历方法
}
public static void printCalendar(Calendar c)
{
//查表法
String[] month={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"} ;
String[] week={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
int index=c.get(Calendar.MONTH);
int index1=c.get(Calendar.DAY_OF_WEEK);
//System.out.println(c);
System.out.println(c.get(Calendar.YEAR)+"年");
//System.out.println(c.get(Calendar.MONTH)+"月");
System.out.print(month[index]);
System.out.println(c.get(Calendar.DAY_OF_MONTH)+"日");
//System.out.println("星期"+c.get(Calendar.DAY_OF_WEEK));
System.out.println(week[index1]);
System.out.print(c.get(Calendar.HOUR_OF_DAY)+"时");
System.out.print(c.get(Calendar.MINUTE)+"分");
System.out.println(c.get(Calendar.SECOND)+"秒");
/*
获取当前年份:
Date time=new Date();
SimpleDateFormat q= new SimpleDateFormat("yyyy");
String qq=q.format(time);
System.out.println(qq);
*/
}
}
运行结果:

2.2 请满足以下两个要求:
1,获取任意年的二月有多少天。
思路:根据指定年设置一个时间就是
c.set(year,2,1)//某一年的3月1日。
c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。
2,获取昨天的现在这个时刻。
c.add(Calenar.DAY_OF_MONTH,-1);
代码如下:
import java.util.Scanner;
import java.util.*;
import java.text.*;
class CalendarTest
{
public static void main(String[] args)
{
sop("获取昨天此刻的时间:");
Calendar time=Calendar.getInstance();
time.add(Calendar.DAY_OF_MONTH,-1);//求昨天日期
sop(time.get(Calendar.YEAR)+"年");
sop((time.get(Calendar.MONTH)+1)+"月");
sop(time.get(Calendar.DAY_OF_MONTH)+"日");
sop(time.get(Calendar.HOUR)+"时");
sop(time.get(Calendar.MINUTE)+"分");
sop(time.get(Calendar.SECOND)+"秒"+"\n");
sop("\n");//换行
Scanner input=new Scanner(System.in);
sop("请输入一个年份:");
int year=input.nextInt();
time.set(year,2,1);//设置某一年的3月1日
time.add(Calendar.DAY_OF_MONTH,-1);//减去一天
sop("\n"+year+"年的2月有"+time.get(Calendar.DAY_OF_MONTH)+"天"+"\n");
}
//打印方法
public static void sop(Object o)
{
System.out.print(o);
}
}
运行结果:
