JavaTM Platform
Standard Ed. 6

java.util
클래스 GregorianCalendar

java.lang.Object 
  상위를 확장 java.util.Calendar 
      상위를 확장 java.util.GregorianCalendar
모든 구현된 인터페이스:
Serializable , Cloneable , Comparable <Calendar >


public class GregorianCalendar
extends Calendar

GregorianCalendar 는,Calendar 의 구상 서브 클래스이며, 세계의 대부분의 지역에서 사용되는 표준적인 달력 시스템을 제공합니다.

GregorianCalendar 는, 태양력과 율리우스력을 지원하는 하이브리드(hybrid) 달력 시스템으로, 단일의 변환기를 처리합니다. 이 변환기는, 디폴트에서는, 태양력이 제정된 날 (일부의 나라에서는 1582 년 10 월 15 일, 그 외의 나라에서는 그것 이후)에 대응하고 있습니다. 조정일은,setGregorianChange() 를 호출하는 것에 의해 호출측에서 변경할 수 있습니다.

역사적으로, 태양력을 최초로 채용한 나라들에서는, 1582 년 10 월 4 일 (유리우스력)의 후에 1582 년 10 월 15 일 (그레고리오력)이 계속되었습니다. 이 달력은 이것을 정확하게 모델화하고 있습니다. 태양력에의 변경일의 전은,GregorianCalendar 에서는 율리우스력을 구현하고 있습니다. 태양력과 율리우스력의 유일한 차이는 윤년의 규칙입니다. 율리우스력은 4 년마다 윤년을 지정합니다만, 태양력으로는, 400 으로 나뉘어 떨어지지 않는 세기의 초년을 윤년으로 하지 않습니다.

GregorianCalendar 는, 「예기적」태양력 및 율리우스력을 구현합니다. 즉, 일자의 계산에서는, 현재의 규칙을 무한의 과거 혹은 미래를 향해 적용합니다. 이 때문에,GregorianCalendar 는 모든 해에 대해 일관한 결과를 생성하기 위해서 사용할 수 있습니다. 다만,GregorianCalendar 를 사용해 얻을 수 있던 일자는, 역사적으로, 현대와 같은 율리우스력이 채용된 AD 4 년 3 월 1 일 이후의 일자만이 정확합니다. 이 일자보다 전에는, 윤년의 규칙은 불규칙하게 적용되고 있어 BC 45 년 이전에는 율리우스력은 존재마저 하고 있지 않았습니다.

태양력의 제정보다 전은, 설날은 3 월 25 일이었습니다. 혼란을 피하기 위해서(때문에), 이 달력에서는 항상 1 월 1 일을 사용합니다. 필요하면, 태양력보다 전날부에 대해, 1 월 1 일부터 3 월 24 일간의 날에 조정할 수가 있습니다.

WEEK_OF_YEAR 필드에 대해서 계산되는 값의 범위는, 1 에서 53 입니다. 해의 제 1 주는, 그 해로부터 적어도 getMinimalDaysInFirstWeek() 일을 포함한 getFirstDayOfWeek() 로 시작되는 가장 빠른 7 일간입니다. 이와 같이 제 1 주는 getMinimalDaysInFirstWeek(),getFirstDayOfWeek() 의 값, 및 1 월 1 일의 요일에 의해 변화합니다. 어느 해의 제 1 주부터 다음 해의 제 1 주까지의 주는, 필요에 따라서 2 에서 52 또는 53 까지 순서에 번호를 붙일 수 있습니다.

예를 들어, 1998 년 1 월 1 일은 목요일이었습니다. getFirstDayOfWeek()MONDAYgetMinimalDaysInFirstWeek() 가 4 의 경우 (이것들은 ISO 8601 및 다수의 나라의 표준), 1998 년의 제 1 주는 1997년 12 월 29 일부터, 1998 년 1 월 4 일까지입니다. 다만,getFirstDayOfWeek()SUNDAY 의 경우, 1998 년의 제 1 주는 1998 년 1 월 4 일부터, 1998 년 1 월 10 일까지입니다. 1998 년의 최초의 3 일간은 1997 년의 제 53 주에 접어듭니다.

WEEK_OF_MONTH 필드에 대해서 계산되는 값의 범위는, 0 에서 6 입니다. 달의 제 1 주 (WEEK_OF_MONTH = 1 의 날)는, 그 달에 적어도 getMinimalDaysInFirstWeek() 일간 연속하는 가장 빠른 주가 되어,getFirstDayOfWeek() 의 전날까지입니다. 해의 제 1 주와는 달라, 달의 제 1 주는 7 일보다 짧은 일이 있어,getFirstDayOfWeek() 로 시작될 필요는 없고, 전의 달의 날은 포함되지 않습니다. 제 1 주보다 전의 달의 날에는,WEEK_OF_MONTH 의 값은 0 이 됩니다.

예를 들어,getFirstDayOfWeek()SUNDAYgetMinimalDaysInFirstWeek() 가 4 의 경우, 1998 년 1 월의 제 1 주는 1 월 4 나날 요일부터 1 월 10 일 토요일이 됩니다. 이러한 날의 WEEK_OF_MONTH 의 값은 1 입니다. 1 월 1 일 목요일부터 1 월 3 일 토요일의 WEEK_OF_MONTH 의 값은 0 입니다. getMinimalDaysInFirstWeek() 의 값이 3 으로 변경되면(자), 1 월 1 일부터 1 월 3 일의 WEEK_OF_MONTH 의 값은 1 이 됩니다.

clear 메소드는, 달력 필드를 미정도리로 설정합니다. GregorianCalendar 는, 값이 미정도리의 경우, 각 달력 필드에서 다음의 디폴트 값를 사용합니다.

필드
디폴트 값
ERA
AD
YEAR
1970
MONTH
JANUARY
DAY_OF_MONTH
1
DAY_OF_WEEK
주의 최초의 날
WEEK_OF_MONTH
0
DAY_OF_WEEK_IN_MONTH
1
AM_PM
AM
HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND
0

전술의 리스트에 포함되지 않는 필드에 대해서는, 디폴트 값는 적용되지 않습니다.

례:

 // get the supported ids for GMT-08:00 (Pacific Standard Time)
 String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 // if no ids were returned, something is wrong.  get out.
 if (ids.length == 0)
     System.exit(0);

  // begin output
 System.out.println("Current Time");

 // create a Pacific Standard Time time zone
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

 // set up rules for daylight savings time
 pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
 pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

 // create a GregorianCalendar with the Pacific Daylight time zone
 // and the current date and time
 Calendar calendar = new GregorianCalendar(pdt);
 Date trialTime = new Date();
 calendar.setTime(trialTime);

 // print out a bunch of interesting things
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
                    + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
 System.out.println("DST_OFFSET: "
                    + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));

 System.out.println("Current Time, with hour reset to 3");
 calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
 calendar.set(Calendar.HOUR, 3);
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
        + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
 System.out.println("DST_OFFSET: "
        + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
 

도입된 버젼:
JDK1. 1
관련 항목:
TimeZone , 직렬화 된 형식

필드의 개요
static int AD
          서기 (서기)를 나타내는 ERA 필드의 값이며, CE 라고도 불립니다.
static int BC
          서기 (BC)보다 전의 기간을 나타내는 ERA 필드의 값이며, BCE 라고도 불립니다.
 
클래스 java.util. Calendar 로부터 상속된 필드
ALL_STYLES , AM , AM_PM , APRIL , areFieldsSet , AUGUST , DATE , DAY_OF_MONTH , DAY_OF_WEEK , DAY_OF_WEEK_IN_MONTH , DAY_OF_YEAR , DECEMBER , DST_OFFSET , ERA , FEBRUARY , FIELD_COUNT , fields , FRIDAY , HOUR , HOUR_OF_DAY , isSet , isTimeSet , JANUARY , JULY , JUNE , LONG , MARCH , MAY , MILLISECOND , MINUTE , MONDAY , MONTH , NOVEMBER , OCTOBER , PM , SATURDAY , SECOND , SEPTEMBER , SHORT , SUNDAY , THURSDAY , time , TUESDAY , UNDECIMBER , WEDNESDAY , WEEK_OF_MONTH , WEEK_OF_YEAR , YEAR , ZONE_OFFSET
 
생성자 의 개요
GregorianCalendar ()
          디폴트 로케일로 디폴트 타임 존의 현재 시각에 근거해 디폴트의 GregorianCalendar 를 구축합니다.
GregorianCalendar (int year, int month, int dayOfMonth)
          지정된 로케일 디폴트 로케일로 디폴트 타임 존의 지정된 일자에 근거해 GregorianCalendar 를 구축합니다.
GregorianCalendar (int year, int month, int dayOfMonth, int hourOfDay, int minute)
          디폴트 로케일로 디폴트 타임 존의 지정된 일자와 시각에 근거해 GregorianCalendar 를 구축합니다.
GregorianCalendar (int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
          디폴트 로케일로 디폴트 타임 존의 지정된 일자와 시각에 근거해 GregorianCalendar 를 구축합니다.
GregorianCalendar (Locale  aLocale)
          지정된 로케일로 디폴트의 타임 존의 현재 시각에 근거해 GregorianCalendar 를 구축합니다.
GregorianCalendar (TimeZone  zone)
          디폴트 로케일로 지정된 타임 존의 현재 시각에 근거해 GregorianCalendar 를 구축합니다.
GregorianCalendar (TimeZone  zone, Locale  aLocale)
          지정된 로케일로 지정된 타임 존의 현재 시각에 근거해 GregorianCalendar 를 구축합니다.
 
메소드의 개요
 void add (int field, int amount)
          달력의 규칙에 근거해, 지정된 (부호 첨부의) 시간량을, 지정된 달력 필드에 가세합니다.
 Object clone ()
          이 객체의 카피를 작성해, 돌려줍니다.
protected  void computeFields ()
          시각치 (신기원으로부터의 밀리 세컨드 단위의 오프셋(offset))를 달력 필드치로 변환합니다.
protected  void computeTime ()
          달력 필드치를 시간치 (신기원으로부터의 밀리 세컨드 단위의 오프셋(offset))로 변환합니다.
 boolean equals (Object  obj)
          이 GregorianCalendar 가 지정된 Object 와 비교합니다.
 int getActualMaximum (int field)
          이 달력 필드가 가질 수 있는 최대치가 돌려주어집니다.
 int getActualMinimum (int field)
          이 달력 필드가 가질 수 있는 최소치가 돌려주어집니다.
 int getGreatestMinimum (int field)
          이 GregorianCalendar 인스턴스로 지정된 달력 필드의 최대 최소치가 돌려주어집니다.
 Date getGregorianChange ()
          태양력의 변경일을 가져옵니다.
 int getLeastMaximum (int field)
          이 GregorianCalendar 인스턴스로 지정된 달력 필드의 최소 최대치가 돌려주어집니다.
 int getMaximum (int field)
          이 GregorianCalendar 인스턴스로 지정된 달력 필드의 최대치가 돌려주어집니다.
 int getMinimum (int field)
          이 GregorianCalendar 인스턴스로 지정된 달력 필드의 최소치가 돌려주어집니다.
 TimeZone getTimeZone ()
          타임 존을 가져옵니다.
 int hashCode ()
          이 GregorianCalendar 객체의 해시 코드를 생성합니다.
 boolean isLeapYear (int year)
          지정된 해가, 윤년인가 어떤가를 판정합니다.
 void roll (int field, boolean up)
          큰 필드를 변경하지 않고 로 지정된 시간 필드의 1 개의 단위의 시간을 위 또는 아래에 가산 또는 감산합니다.
 void roll (int field, int amount)
          큰 필드를 변경하지 않고 , 부호 첨부의 양이 지정된 달력 필드에 가세합니다.
 void setGregorianChange (Date  date)
          GregorianCalendar 의 변경일을 설정합니다.
 void setTimeZone (TimeZone  zone)
          지정된 타임 존치를 사용해 타임 존을 설정합니다.
 
클래스 java.util. Calendar 로부터 상속된 메소드
after , before , clear , clear , compareTo , complete , get , getAvailableLocales , getDisplayName , getDisplayNames , getFirstDayOfWeek , getInstance , getInstance , getInstance , getInstance , getMinimalDaysInFirstWeek , getTime , getTimeInMillis , internalGet , isLenient , isSet , set , set , set , set , setFirstDayOfWeek , setLenient , setMinimalDaysInFirstWeek , setTime , setTimeInMillis , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
finalize , getClass , notify , notifyAll , wait , wait , wait
 

필드의 상세

BC

public static final int BC
서기 (BC)보다 전의 기간을 나타내는 ERA 필드의 값이며, BCE 라고도 불립니다. BC 로부터 AD 에는 다음과 같이 이행 합니다. ..., 2 BC, 1 BC, 1 AD, 2 AD,...

관련 항목:
Calendar.ERA , 정수 필드치

AD

public static final int AD
서기 (서기)를 나타내는 ERA 필드의 값이며, CE 라고도 불립니다. BC 로부터 AD 에는 다음과 같이 이행 합니다. ..., 2 BC, 1 BC, 1 AD, 2 AD,...

관련 항목:
Calendar.ERA , 정수 필드치
생성자 의 상세

GregorianCalendar

public GregorianCalendar()
디폴트 로케일로 디폴트 타임 존의 현재 시각에 근거해 디폴트의 GregorianCalendar 를 구축합니다.


GregorianCalendar

public GregorianCalendar(TimeZone  zone)
디폴트 로케일로 지정된 타임 존의 현재 시각에 근거해 GregorianCalendar 를 구축합니다.

파라미터:
zone - 지정된 타임 존

GregorianCalendar

public GregorianCalendar(Locale  aLocale)
지정된 로케일로 디폴트의 타임 존의 현재 시각에 근거해 GregorianCalendar 를 구축합니다.

파라미터:
aLocale - 지정된 로케일

GregorianCalendar

public GregorianCalendar(TimeZone  zone,
                         Locale  aLocale)
지정된 로케일로 지정된 타임 존의 현재 시각에 근거해 GregorianCalendar 를 구축합니다.

파라미터:
zone - 지정된 타임 존
aLocale - 지정된 로케일

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth)
지정된 로케일 디폴트 로케일로 디폴트 타임 존의 지정된 일자에 근거해 GregorianCalendar 를 구축합니다.

파라미터:
year - 달력내의 YEAR 달력 필드의 설정에 사용하는 값
month - 달력내의 MONTH 달력 필드의 설정에 사용하는 값. Month 치는 0 으로부터 시작되는 (1 월은 0 이 된다)
dayOfMonth - 달력내의 DAY_OF_MONTH 달력 필드의 설정에 사용하는 값

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth,
                         int hourOfDay,
                         int minute)
디폴트 로케일로 디폴트 타임 존의 지정된 일자와 시각에 근거해 GregorianCalendar 를 구축합니다.

파라미터:
year - 달력내의 YEAR 달력 필드의 설정에 사용하는 값
month - 달력내의 MONTH 달력 필드의 설정에 사용하는 값. Month 치는 0 으로부터 시작되는 (1 월은 0 이 된다)
dayOfMonth - 달력내의 DAY_OF_MONTH 달력 필드의 설정에 사용하는 값
hourOfDay - 달력내의 HOUR_OF_DAY 달력 필드의 설정에 사용하는 값
minute - 달력내의 MINUTE 달력 필드의 설정에 사용하는 값

GregorianCalendar

public GregorianCalendar(int year,
                         int month,
                         int dayOfMonth,
                         int hourOfDay,
                         int minute,
                         int second)
디폴트 로케일로 디폴트 타임 존의 지정된 일자와 시각에 근거해 GregorianCalendar 를 구축합니다.

파라미터:
year - 달력내의 YEAR 달력 필드의 설정에 사용하는 값
month - 달력내의 MONTH 달력 필드의 설정에 사용하는 값. Month 치는 0 으로부터 시작되는 (1 월은 0 이 된다)
dayOfMonth - 달력내의 DAY_OF_MONTH 달력 필드의 설정에 사용하는 값
hourOfDay - 달력내의 HOUR_OF_DAY 달력 필드의 설정에 사용하는 값
minute - 달력내의 MINUTE 달력 필드의 설정에 사용하는 값
second - 달력내의 SECOND 달력 필드의 설정에 사용하는 값
메소드의 상세

setGregorianChange

public void setGregorianChange(Date  date)
GregorianCalendar 의 변경일을 설정합니다. 이것은, 율리우스력으로부터 태양력에의 변경이 발생하는 시점입니다. 디폴트는 1582 년 10 월 15 일 (태양력)입니다. 이것 이전의 일자는 율리우스력이 됩니다.  

순수한 율리우스력을 가져오려면 , 변경일을 Date(Long.MAX_VALUE) 로 설정합니다. 순수한 그레고리오력을 가져오려면 , 변경일을 Date(Long.MIN_VALUE) 로 설정합니다.

파라미터:
date - 태양력에의 변경 일자

getGregorianChange

public final Date  getGregorianChange()
태양력의 변경일을 가져옵니다. 이것은, 율리우스력으로부터 태양력에의 변경이 발생하는 시점입니다. 디폴트는 1582 년 10 월 15 일 (태양력)입니다. 이것 이전의 일자는 율리우스력이 됩니다.

반환값:
GregorianCalendar 객체의 태양력에의 변경일

isLeapYear

public boolean isLeapYear(int year)
지정된 해가, 윤년인가 어떤가를 판정합니다. 지정된 해가 윤년의 경우는,true 가 돌려주어집니다. BC 년의 수치를 지정하는 경우는,1 - year number 를 지정할 필요가 있습니다. 예를 들어, BC 4 년은 -3 과 지정합니다.

파라미터:
year - 지정하는 해
반환값:
지정된 해가 윤년의 경우는 true, 그렇지 않은 경우는 false

equals

public boolean equals(Object  obj)
GregorianCalendar 가 지정된 Object 와 비교합니다. 인수가, 이 객체와 같은 Calendar 파라미터 및 태양력 변환일의 같은 시각치 (신기원으로부터의 밀리 세컨드 단위의 오프셋(offset))를 나타내는 GregorianCalendar 객체인 경우에게만, 결과는 true 가 됩니다.

오버라이드(override):
클래스 Calendar 내의 equals
파라미터:
obj - 비교 대상의 객체
반환값:
이 객체가 obj 와 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Calendar.compareTo(Calendar)

hashCode

public int hashCode()
GregorianCalendar 객체의 해시 코드를 생성합니다.

오버라이드(override):
클래스 Calendar 내의 hashCode
반환값:
이 객체의 해시 코드값
관련 항목:
Object.equals(java.lang.Object) , Hashtable

add

public void add(int field,
                int amount)
달력의 규칙에 근거해, 지정된 (부호 첨부의) 시간량을, 지정된 달력 필드에 가세합니다.

Add rule 1. 호출이 필드에서 발생한 모듈로 오버플로우 amount 가 되기 전에, 호출로 필드의 값을 깎은 뒤의 field 의 값입니다. 오버플로우는, 필드의 값이 범위를 넘어 그 결과, 다음의 큰 필드가 증분 또는 감 분 되어, 필드의 값이 그 범위에 들어가도록(듯이) 조정되었을 경우에 발생합니다.

Add rule 2. 작은 필드가 불변식이다고 예상되는 경우에,field 가 변경되고 나서 최소치 또는 최대치가 변경되었기 때문에, 그 전의 값과 동일하게 안 되면 필드의 값은 그 예상되는 값으로 할 수 있을 뿐(만큼) 가까운 시일내에 되도록(듯이) 조정됩니다. 작은 필드는, 작은 시간의 단위를 나타냅니다. HOUR 는,DAY_OF_MONTH 보다 작은 필드입니다. 불변식은 아니라고 예상되는 작은 필드는, 조정되지 않습니다. 달력 시스템에서는, 불변식이다고 예상되는 필드가 판단됩니다.

정의:
클래스 Calendar 내의 add
파라미터:
field - 달력 필드
amount - 필드에 추가되는 일자 또는 시각의 양
예외:
IllegalArgumentException - fieldZONE_OFFSET,DST_OFFSET, 또는 불명한가, 몇개의 달력 필드가 엄밀 모드로 범위외의 값을 보관 유지하는 경우
관련 항목:
Calendar.roll(int, int) , Calendar.set(int, int)

roll

public void roll(int field,
                 boolean up)
큰 필드를 변경하지 않고 로 지정된 시간 필드의 1 개의 단위의 시간을 위 또는 아래에 가산 또는 감산합니다.  

:1999 연 12 월 31 일에 당초 설정된 GregorianCalendar 를 생각합니다. roll(Calendar.MONTH, true) 를 호출하면(자), 달력이 1999 년 1 월 31 일로 설정됩니다. Year 필드는 MONTH 보다 큰 필드이므로 변경되지 않습니다.

정의:
클래스 Calendar 내의 roll
파라미터:
up - 지정된 달력 필드의 값을 위에 움직이는지, 아래에 움직이는지를 지정한다. 위에 움직이는 경우는 true, 그렇지 않은 경우는 false 를 사용하는
field - 시간 필드
예외:
IllegalArgumentException - fieldZONE_OFFSET,DST_OFFSET, 또는 불명한가, 몇개의 달력 필드가 엄밀 모드로 범위외의 값을 보관 유지하는 경우
관련 항목:
add(int, int) , Calendar.set(int, int)

roll

public void roll(int field,
                 int amount)
큰 필드를 변경하지 않고 , 부호 첨부의 양이 지정된 달력 필드에 가세합니다. 부의 롤링량은, 큰 필드를 변경하지 않고 필드로부터 감산하는 것을 의미합니다. 지정된 양이 0 의 경우, 이 메소드는 아무것도 실행하지 않습니다.

이 메소드는, 양을 추가하기 전에 Calendar.complete() 를 호출해, 모든 달력 필드를 정규화합니다. 엄밀 모드로 범위외의 값을 보관 유지하는 달력 필드가 존재하는 경우,IllegalArgumentException 가 throw 됩니다.

:1999 연 8 월 31 일에 당초 설정된 GregorianCalendar 를 생각합니다. roll(Calendar.MONTH, 8) 를 호출하면(자), 달력이 1999 년 4 월 30 일로 설정됩니다. GregorianCalendar 를 사용하면(자),DAY_OF_MONTH 필드는 4 월에 있어 31 일이 되지 않습니다. DAY_OF_MONTH 는 가장 가까운 유효치인 30 으로 설정됩니다. YEAR 필드에서는 MONTH 필드보다 크기 때문에, 1999 의 값을 유지합니다.  

:최초로 1999 년 6 월 6 나날 요일로 설정된 GregorianCalendar 를 생각합니다. roll(Calendar.WEEK_OF_MONTH, -1) 를 호출하면(자), 달력이 1999 년 6 월 1 일 화요일로 설정되어add(Calendar.WEEK_OF_MONTH, -1) 를 호출하면(자), 달력이 1999 년 5 월 30 나날 요일로 설정됩니다. 이것은, 롤 규칙으로 추가의 제한이 더해지기 (위해)때문에입니다. WEEK_OF_MONTH 가 롤 될 때 MONTH 를 변경해야 하지는 않습니다. add rule 1 과 함께 사용하면(자), 결과의 일자는 6 월 1 일 화요일부터 6 월 5 일 토요일까지 될 필요가 있습니다. add rule 2 에 따라,WEEK_OF_MONTH 를 변경할 경우에 불변식 DAY_OF_WEEK 가, 일요일에 가장 가까운 가능치인 화요일로 설정됩니다 (일요일이 주의 최초의 날의 경우).

오버라이드(override):
클래스 Calendar 내의 roll
파라미터:
field - 달력 필드
amount - field 에 추가하는 지정된 양
예외:
IllegalArgumentException - fieldZONE_OFFSET,DST_OFFSET, 또는 불명한가, 몇개의 달력 필드가 엄밀 모드로 범위외의 값을 보관 유지하는 경우
도입된 버젼:
1.2
관련 항목:
roll(int, boolean) , add(int, int) , Calendar.set(int, int)

getMinimum

public int getMinimum(int field)
GregorianCalendar 인스턴스로 지정된 달력 필드의 최소치가 돌려주어집니다. 최소치는,getFirstDayOfWeek ,getMinimalDaysInFirstWeek ,getGregorianChange , 및 getTimeZone 의 각 메소드의 각각의 현재가를 고려한 데다가, 모든 가능한 시간치에 대해서 get 메소드가 돌려주는 최소치로서 정의됩니다.

정의:
클래스 Calendar 내의 getMinimum
파라미터:
field - 달력 필드
반환값:
지정된 달력 필드의 최소치
관련 항목:
getMaximum(int) , getGreatestMinimum(int) , getLeastMaximum(int) , getActualMinimum(int) , getActualMaximum(int)

getMaximum

public int getMaximum(int field)
GregorianCalendar 인스턴스로 지정된 달력 필드의 최대치가 돌려주어집니다. 최대치는,getFirstDayOfWeek ,getMinimalDaysInFirstWeek ,getGregorianChange , 및 getTimeZone 의 각 메소드의 각각의 현재가를 고려한 데다가, 모든 가능한 시간치에 대해서 get 메소드가 돌려주는 최대치로서 정의됩니다.

정의:
클래스 Calendar 내의 getMaximum
파라미터:
field - 달력 필드
반환값:
지정된 달력 필드의 최대치
관련 항목:
getMinimum(int) , getGreatestMinimum(int) , getLeastMaximum(int) , getActualMinimum(int) , getActualMaximum(int)

getGreatestMinimum

public int getGreatestMinimum(int field)
GregorianCalendar 인스턴스로 지정된 달력 필드의 최대 최소치가 돌려주어집니다. 최대 최소치는,getFirstDayOfWeek ,getMinimalDaysInFirstWeek ,getGregorianChange , 및 getTimeZone 의 각 메소드의 각각의 현재가를 고려한 데다가, 모든 가능한 시간치에 대해서 getActualMinimum(int) 메소드가 돌려주는 최대치로서 정의됩니다.

정의:
클래스 Calendar 내의 getGreatestMinimum
파라미터:
field - 달력 필드
반환값:
지정된 달력 필드의 가장 큰 최소치
관련 항목:
getMinimum(int) , getMaximum(int) , getLeastMaximum(int) , getActualMinimum(int) , getActualMaximum(int)

getLeastMaximum

public int getLeastMaximum(int field)
GregorianCalendar 인스턴스로 지정된 달력 필드의 최소 최대치가 돌려주어집니다. 최소 최대치는,getFirstDayOfWeek ,getMinimalDaysInFirstWeek ,getGregorianChange , 및 getTimeZone 의 각 메소드의 각각의 현재가를 고려한 데다가, 모든 가능한 시간치에 대해서 getActualMaximum(int) 메소드가 돌려주는 최소치로서 정의됩니다.

정의:
클래스 Calendar 내의 getLeastMaximum
파라미터:
field - 달력 필드
반환값:
지정된 달력 필드의 최소 최대치
관련 항목:
getMinimum(int) , getMaximum(int) , getGreatestMinimum(int) , getActualMinimum(int) , getActualMaximum(int)

getActualMinimum

public int getActualMinimum(int field)
이 달력 필드가 가질 수 있는 최소치가 돌려주어집니다. 이 때, 지정된 시간치와getFirstDayOfWeek ,getMinimalDaysInFirstWeek ,getGregorianChange , 및 getTimeZone 의 각 메소드의 현재가가 고려됩니다.

예를 들어, 태양력의 변경일이 1970 년 1 월 10 일로, 이 GregorianCalendar 가 1970 년 1 월 20 일이라고 하면(자),DAY_OF_MONTH 필드의 실제의 최소치는 10 이 됩니다. 이것은, 1970 년 1 월 10 일의 전날이 1996 년 12 월 27 일 (율리우스력으로)이 되기 (위해)때문에입니다. 따라서, 1969 년 12 월 28 일부터 1970 년 1 월 9 일까지는 존재하지 않습니다.

오버라이드(override):
클래스 Calendar 내의 getActualMinimum
파라미터:
field - 달력 필드
반환값:
GregorianCalendar 의 시간치에 대한, 지정된 달력 필드의 최소치
도입된 버젼:
1.2
관련 항목:
getMinimum(int) , getMaximum(int) , getGreatestMinimum(int) , getLeastMaximum(int) , getActualMaximum(int)

getActualMaximum

public int getActualMaximum(int field)
이 달력 필드가 가질 수 있는 최대치가 돌려주어집니다. 이 때, 지정된 시간치와getFirstDayOfWeek ,getMinimalDaysInFirstWeek ,getGregorianChange , 및 getTimeZone 의 각 메소드의 현재가가 고려됩니다. 예를 들어, 이 인스턴스의 일자가 2004 년 2 월 1 일이라고 하면(자),DAY_OF_MONTH 필드의 실제의 최대치는 29 가 됩니다. 이것은, 2004 년이 윤년이기 때문에, 이 인스턴스의 일자가 2005 년 2 월 1 일이면, 이 값은 28 이 됩니다.

오버라이드(override):
클래스 Calendar 내의 getActualMaximum
파라미터:
field - 달력 필드
반환값:
GregorianCalendar 의 시간치에 대한, 지정된 필드의 최대치
도입된 버젼:
1.2
관련 항목:
getMinimum(int) , getMaximum(int) , getGreatestMinimum(int) , getLeastMaximum(int) , getActualMinimum(int)

clone

public Object  clone()
클래스 Calendar 의 기술:
이 객체의 카피를 작성해, 돌려줍니다.

오버라이드(override):
클래스 Calendar 내의 clone
반환값:
이 객체의 카피
관련 항목:
Cloneable

getTimeZone

public TimeZone  getTimeZone()
클래스 Calendar 의 기술:
타임 존을 가져옵니다.

오버라이드(override):
클래스 Calendar 내의 getTimeZone
반환값:
달력에 관련한 타임 존 객체

setTimeZone

public void setTimeZone(TimeZone  zone)
클래스 Calendar 의 기술:
지정된 타임 존치를 사용해 타임 존을 설정합니다.

오버라이드(override):
클래스 Calendar 내의 setTimeZone
파라미터:
zone - 지정된 타임 존

computeFields

protected void computeFields()
시각치 (신기원으로부터의 밀리 세컨드 단위의 오프셋(offset))를 달력 필드치로 변환합니다. 시간은 최초로 재계산되지 않습니다. 시간, 필드의 순서에 재계산하려면 ,complete 메소드를 호출합니다.

정의:
클래스 Calendar 내의 computeFields
관련 항목:
Calendar.complete()

computeTime

protected void computeTime()
달력 필드치를 시간치 (신기원으로부터의 밀리 세컨드 단위의 오프셋(offset))로 변환합니다.

정의:
클래스 Calendar 내의 computeTime
예외:
IllegalArgumentException - 무효인 달력 필드가 있는 경우
관련 항목:
Calendar.complete() , Calendar.computeFields()

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.