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); } }
运行结果: