(一)Calendar類概述
1、Calendar類的概述
Calendar為某一時刻和一組月曆字段之間的轉換提供了一些方法,并為操作月曆字段提供了一些方法。
Calendar提供了一個類方法getlnstance用于擷取Calendar對象,其月曆字段已使用目前日期和時間初始化。
調用格式:Calendar rightNow=Calendar.getlnstance()
利用上述的方法實作擷取目前月曆:
程式如下:
packageafternoon;
importjava.util.Calendar;
public classCalendarDemo {
public static voidmain(String[] args){
//擷取對象
Calendar c=Calendar.getInstance();
//System.out.print(c); //這一步是用于自己對于擷取月曆的類型
intyear=c.get(Calendar.
YEAR);
intmonth=c.get(Calendar.
MONTH);
intdata=c.get(Calendar.
DATE);
System.
out.print(year+"年"+month+"月"+data+"日"); //列印目前的時間
}
}
Output result:2020年9月21日
注:此處用Calendar的過程當中的月份從0開始的,其中0代表1月份 (二)Calendar的常用方法(1)Public int get(int field) 傳回給定的月曆字段的值
(2)Public abstract void add(int filed,int month,int data) 傳回目前月曆的年月日.
調用Calendar的常用方法:
程式:
packageafternoon;
importjava.util.Calendar;
public classCalendarDemo1 {
public static voidmain(String[] args){
//擷取對象
Calendar c=Calendar.getInstance();
//需求1:3年前的今天
c.add(Calendar.
YEAR, -3);
//Public int get(int field) 傳回給定的月曆字段的值
intyear=c.get(Calendar.
YEAR);
intmonth=c.get(Calendar.
MONTH)+1;
intdata=c.get(Calendar.
DATE);
System.
out.print(year+"年"+month+"月"+data+"日"); //列印3年前的今天
System.
out.print("--------");
//需求2:15年後的5天前
c.add(Calendar.
YEAR, 15);
c.add(Calendar.
DATE, -5);
intyear2=c.get(Calendar.
YEAR);
intmonth2=c.get(Calendar.
MONTH)+1;
intdata2=c.get(Calendar.
DATE);
System.
out.print(year2+"年"+month2+"月"+data2+"日"); //列印15年後的5天前
System.
out.print("--------");
//public final void set(int year,int month,int data) 設定目前月曆的年月日
c.set(2020, 10, 21);
intyear1=c.get(Calendar.
YEAR);
intmonth1=c.get(Calendar.
MONTH);
intdata1=c.get(Calendar.
DATE);
System.
out.print(year1+"年"+month1+"月"+data1+"日"); //列印設定目前月曆的年月日
}
}
Output result:
2017年10月21日--------2032年10月16日--------2020年10月21日
案列:二月天
packageafternoon;
importjava.util.Calendar;
importjava.util.Scanner;
public classCalendarTest {
public static voidmain(String[] args){
Scanner sc=
newScanner(System.
in);
intyear=sc.nextInt();
System.
out.print("請輸入年份:");
//建立月曆對象
Calendar c= Calendar.getInstance();
c.set(year, 2, 1);
//3月1日往前推一天,就是2月的最後一天
c.add(Calendar.
DATE, -1);
//擷取這一天,輸出這一天即可。
//int year=c.get(Calendar.YEAR);
//int month=c.get(Calendar.MONTH)+1;
c.add(Calendar.
DATE, -1);
intdata=c.get(Calendar.
DATE);
System.
out.print(year+"年的2月份有"+data+"天");
}
}
思考:對于采用月曆類去計算任給一個月判斷其為月大,還是月小??