JavaTM Platform
Standard Ed. 6

javax.xml.datatype
클래스 Duration

java.lang.Object 
  상위를 확장 javax.xml.datatype.Duration


public abstract class Duration
extends Object

W3C XML Schema 1.0 스펙에 정의된 기간의 불변의 표현입니다.

 

Duration 객체는 그레고리오 시간의 시간을 나타내, 6 개의 필드 (년, 월, 일, 시간, 분 , 초)와 기호 (+/-) 필드로부터 구성됩니다.

 

선두의 5 개의 필드에는 부 이외 (>=0)의 정수 또는 null (필드가 설정되어 있지 않은 것을 나타낸다)가 들어가, 2 번째의 필드에는 부 이외의 10 진수 또는 null 가 들어갑니다. 부의 기호는 부의 듀레이션을 나타냅니다.

 

이 클래스는 정오표 첨부의 XML Schema 1.0 의 듀레이션데이타형에 간단하게 사용할 수 있는 많은 메소드를 제공하고 있습니다.

순서 관계

 

Duration 객체는 부분적인 순서만을 가져, A 와 B 의 2 개의 값은 다음의 어느 쪽인가에 됩니다.

  1. A<B (A 는 B 보다 짧다)
  2. A>B (A 는 B 보다 길다)
  3. A==B (A 와 B 는 같은 듀레이션)
  4. A<>B (A 와 B 의 비교는 판정 불가)
 

예를 들어, 30 일과 1 개월은 의미상 비교할 수 없습니다. compare(Duration duration) 메소드로 이 관계를 구현합니다.

 

Duration 객체간의 순서 관계의 상세한 것에 대하여는 isLongerThan(Duration) 메소드를 참조해 주세요.

듀레이션의 연산

 

이 클래스는, 가산, 감산, 곱셈등의 일련의 기본 산술 연산을 실행합니다. 듀레이션에는 전체 순서가 없기 때문에, 연산의 조합해에 따라서는, 연산이 실패할 가능성이 있습니다. 예를 들어, 1 개월부터 15 일을 감산할 수 없습니다. 실패할 가능성이 있는 자세한 상황에 대해서는, 이러한 메소드의 Javadoc 를 참조해 주세요.

 

게다가Duration 클래스를 처리할 수 있는 것은 유한 정밀도 10 진수에 한정되기 (위해)때문에, 수치에 의한 듀레이션의 제산은 제공되지 않습니다. 예를 들어, 1 초 나누는 3 (1 초 ÷ 3)은 표현할 수 없습니다.

 

다만, 0.3 이나 0.333 등의 수치로 곱셈해, 3 에 의한 제산에 대신할 수 있습니다.

허가되는 값의 범위

Duration 에는 극히 큰 값이나 작은 값을 보관 유지할 수 있습니다만,Duration 의 일부의 연산은 Calendar 에 의존하고 있기 (위해)때문에, 그러한 Duration 에 대해서는 일부의 메소드가 정상적으로 동작하지 않는 것이 있습니다. 영향을 받는 메소드에는 그러한 Calendar 에의 의존관계(dependencies)에 대해 기술되고 있습니다.

도입된 버젼:
1.5
관련 항목:
XMLGregorianCalendar.add(Duration)

생성자 의 개요
Duration ()
          디폴트의 인수 없음의 생성자 입니다.
 
메소드의 개요
abstract  Duration add (Duration  rhs)
          값이 this+rhs 인 새로운 듀레이션을 계산합니다.
abstract  void addTo (Calendar  calendar)
          이 듀레이션을 Calendar 객체에 추가합니다.
 void addTo (Date  date)
          이 듀레이션을 Date 객체에 추가합니다.
abstract  int compare (Duration  duration)
          이 Duration 인스턴스와 부분 순서 릴레이션을 비교합니다.
 boolean equals (Object  duration)
          이 Duration 객체가 다른 Duration 객체와 동일한지 어떤지를 체크합니다.
 int getDays ()
          DAYS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다.
abstract  Number getField (DatatypeConstants.Field  field)
          필드의 값을 가져옵니다.
 int getHours ()
          HOURS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다.
 int getMinutes ()
          MINUTES 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다.
 int getMonths ()
          MONTHS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다.
 int getSeconds ()
          SECONDS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다.
abstract  int getSign ()
          이 듀레이션의 기호를,-1, 0, 또는 1 으로 돌려줍니다.
 long getTimeInMillis (Calendar  startInstant)
          밀리 세컨드로 듀레이션의 길이를 돌려줍니다.
 long getTimeInMillis (Date  startInstant)
          밀리 세컨드로 듀레이션의 길이를 돌려줍니다.
 QName getXMLSchemaType ()
          이 인스턴스가 대응하는 XML Schema 일시형의 이름을 돌려줍니다.
 int getYears ()
          이 Duration 의 해의 값을 int 로서 돌려줍니다.
abstract  int hashCode ()
          equals 메소드의 정의에 일치하는 해시 코드를 돌려줍니다.
 boolean isLongerThan (Duration  duration)
          이 Duration 객체가 다른 Duration 객체보다 확실히 긴지 어떤지를 체크합니다.
abstract  boolean isSet (DatatypeConstants.Field  field)
          필드가 설정되어 있는지 어떤지를 체크합니다.
 boolean isShorterThan (Duration  duration)
          이 Duration 객체가 다른 Duration 객체보다 확실히 짧은지 어떤지를 체크합니다.
abstract  Duration multiply (BigDecimal  factor)
          값이 이 듀레이션의 값보다 factor 배 긴 새로운 듀레이션을 계산합니다.
 Duration multiply (int factor)
          값이 이 듀레이션의 값보다 factor 배 긴 새로운 듀레이션을 계산합니다.
abstract  Duration negate ()
          값이 -this 인 새로운 Duration 객체를 돌려줍니다.
abstract  Duration normalizeWith (Calendar  startTimeInstant)
          특정의 시점을 참조점으로서 사용해, 해 및 달필드를 날 필드로 변환합니다.
 Duration subtract (Duration  rhs)
          값이 this-rhs 인 새로운 듀레이션을 계산합니다.
 String toString ()
          이 Duration ObjectString 표현을 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

Duration

public Duration()
디폴트의 인수 없음의 생성자 입니다.  

주:Duration 의 인스턴스를 구축하려면 , 항상 DatatypeFactory 를 사용합니다. 이 클래스상의 생성자 은, 일관한 상태의 객체를 생성한다고는 보증되지 않고, 장래 삭제될 가능성이 있습니다.

메소드의 상세

getXMLSchemaType

public QName  getXMLSchemaType()

이 인스턴스가 대응하는 XML Schema 일시형의 이름을 돌려줍니다. 형태는 설정되는 필드에 근거해 계산됩니다. 즉,isSet(DatatypeConstants.Field field) == true 가 됩니다.

XML Schema 1.0 일시 데이터형의 필수 필드
(모든 일시 데이터형으로 타임 존은 옵션)
데이터형 year month day hour minute second
DatatypeConstants.DURATION X X X X X X
DatatypeConstants.DURATION_DAYTIME X X X X
DatatypeConstants.DURATION_YEARMONTH X X

반환값:
다음의 정수의 언젠가. DatatypeConstants.DURATION , DatatypeConstants.DURATION_DAYTIME , 또는 DatatypeConstants.DURATION_YEARMONTH
예외:
IllegalStateException - 설정 필드의 편성이, XML Schema 일시 데이터형의 어느 쪽인가에 일치하지 않는 경우

getSign

public abstract int getSign()
이 듀레이션의 기호를,-1, 0, 또는 1 으로 돌려줍니다.

반환값:
이 듀레이션이 부의 경우는 -1, 0 의 경우는 0, 정의 경우는 1

getYears

public int getYears()

Duration 의 해의 값을 int 로서 돌려줍니다. 값이 존재하지 않는 경우는 0 을 돌려줍니다.

 

getYears() 는,getField(DatatypeConstants.YEARS) 의 편리한 메소드입니다.

 

반환값이 int 의 경우,int 의 범위를 넘는 해를 포함한 Duration 에 대해서 부정한 값이 돌려주어집니다. 정밀도의 저하를 막기 위해,getField(DatatypeConstants.YEARS) 를 사용해 주세요.

반환값:
년 필드가 존재하는 경우는, 값을 int 로서 그렇지 않은 경우는 0 을 돌려준다

getMonths

public int getMonths()
MONTHS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다. 이 메소드의 기능은 MONTHS 필드에 유효한 것을 제외하면,getYears() 와 완전히 같습니다.

반환값:
Duration 의 달

getDays

public int getDays()
DAYS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다. 이 메소드의 기능은 DAYS 필드에 유효한 것을 제외하면,getYears() 와 완전히 같습니다.

반환값:
Duration 의 날

getHours

public int getHours()
HOURS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다. 이 메소드의 기능은 HOURS 필드에 유효한 것을 제외하면,getYears() 와 완전히 같습니다.

반환값:
Duration 의 시간

getMinutes

public int getMinutes()
MINUTES 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다. 이 메소드의 기능은 MINUTES 필드에 유효한 것을 제외하면,getYears() 와 완전히 같습니다.

반환값:
Duration 의 분

getSeconds

public int getSeconds()
SECONDS 필드의 값을 정수치로서 취득하는지, 필드가 존재하지 않는 경우는 0 이 돌려주어집니다. 이 메소드의 기능은 SECONDS 필드에 유효한 것을 제외하면,getYears() 와 완전히 같습니다.

반환값:
정수치에서의 초. 초의 소수부는 파기된다 (예를 들어, 실제의 값이 2.5 의 경우, 이 메소드는 2 를 돌려준다)

getTimeInMillis

public long getTimeInMillis(Calendar  startInstant)

밀리 세컨드로 듀레이션의 길이를 돌려줍니다.

 

초필드의 자리수가 밀리 세컨드의 자리수보다 큰 경우, 그것들은 단지 파기됩니다 (즉, 0 으로서 잘라 버릴 수 있습니다). 예를 들어, 임의의 Calendar 치 x 의 경우, 다음과 같이 됩니다.

 new Duration("PT10. 00099S"). getTimeInMills(x) == 10000.
 new Duration("-PT10. 00099S"). getTimeInMills(x) == -10000.
 

이 메소드에서는 addTo(Calendar) 메소드를 사용하기 위해(때문에), 필드의 값이 현저하고 큰 Duration 객체의 경우에 올바르게 기능하지 않는 것이 있습니다. 상세한 것에 대하여는 addTo(Calendar) 메소드를 참조해 주세요.

파라미터:
startInstant - 월이나 해의 길이는 여러가지로 다르다. startInstant 를 사용해, 이 차이를 없앤다. 특히, 이 메소드는 startInstantstartInstant+duration 의 차이를 돌려준다
반환값:
startInstantstartInstant 플러스 이 Duration 까지의 밀리 세컨드
예외:
NullPointerException - startInstant 파라미터가 null 의 경우

getTimeInMillis

public long getTimeInMillis(Date  startInstant)

밀리 세컨드로 듀레이션의 길이를 돌려줍니다.

 

초필드의 자리수가 밀리 세컨드의 자리수보다 큰 경우, 그것들은 단지 파기됩니다 (즉, 0 으로서 잘라 버릴 수 있습니다). 예를 들어, 임의의 Datex 의 경우, 다음과 같이 됩니다.

 new Duration("PT10. 00099S"). getTimeInMills(x) == 10000.
 new Duration("-PT10. 00099S"). getTimeInMills(x) == -10000.
 

이 메소드에서는 addTo(Date) 메소드를 사용하기 위해(때문에), 필드의 값이 현저하고 큰 Duration 객체의 경우에 올바르게 기능하지 않는 것이 있습니다. 상세한 것에 대하여는 addTo(Date) 메소드를 참조해 주세요.

파라미터:
startInstant - 월이나 해의 길이는 여러가지로 다르다. startInstant 를 사용해, 이 차이를 없앤다. 특히, 이 메소드는 startInstantstartInstant+duration 의 차이를 돌려준다
반환값:
startInstantstartInstant 플러스 이 Duration 까지의 밀리 세컨드
예외:
NullPointerException - startInstant 파라미터가 null 의 경우
관련 항목:
getTimeInMillis(Calendar)

getField

public abstract Number  getField(DatatypeConstants.Field  field)
필드의 값을 가져옵니다. Duration 객체의 필드에는 임의의 큰 값을 포함할 수 있습니다. 그 때문에, 이 메소드는 Number 객체를 돌려주도록(듯이) 설계되고 있습니다. YEARS, MONTHS, DAYS, HOURS, 및 MINUTES 의 경우, 반환되는 수치는 부가 아닌 정수가 됩니다. SECONDS 의 경우, 반환되는 수치는 부가 아닌 10 진수값가 됩니다.

파라미터:
field - 6 개의 Field 정수 (YEARS, MONTHS, DAYS, HOURS, MINUTES, 또는 SECONDS)의 언젠가
반환값:
지정된 필드가 존재하는 경우는, 이 메소드는 그 값을 나타내는 null 이외의 부가 아닌 Number 객체를 돌려준다. 필드가 존재하지 않는 경우는, null 를 돌려준다. YEARS, MONTHS, DAYS, HOURS, 및 MINUTES 의 경우는, 이 메소드는 BigInteger 객체를 돌려준다. SECONDS 의 경우는, 이 메소드는 BigDecimal 를 돌려준다
예외:
NullPointerException - fieldnull 의 경우

isSet

public abstract boolean isSet(DatatypeConstants.Field  field)
필드가 설정되어 있는지 어떤지를 체크합니다. Duration 객체의 필드는 존재하는 경우와 존재하지 않는 경우가 있습니다. 이 메소드를 사용해, 필드가 존재할지 어떨지를 확인할 수 있습니다.

파라미터:
field - 6 개의 Field 정수 (YEARS, MONTHS, DAYS, HOURS, MINUTES, 또는 SECONDS)의 언젠가
반환값:
필드가 존재하는 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - 필드 파라미터가 null 의 경우

add

public abstract Duration  add(Duration  rhs)

값이 this+rhs 인 새로운 듀레이션을 계산합니다.

 

다음에 예를 나타냅니다.

 "1 일" + "-3 일" = "-2 일"
 "1 년" + "1 일" = "1 년과 1 일"
 "-(1 시간, 50 분 )" + "-20 분" = "-(1 시간, 70 분 )"
 "15 시간" + "-3 일" = "-(2 일, 9 시간)"
 "1 년" + "-1 일" = IllegalStateException
 
 

의미상 1 개월부터 1 일을 감산할 수 없기 때문에,IllegalStateException 로 연산이 실패하는 경우가 있습니다.

형식상, 다음과 같이 계산됩니다.

우선, 가산하는 2 개의 Duration 는, 범용성을 잃지 않고 ,함께 정이다고 하는 (즉,(-X) +Y=Y-X,X+(-Y) =X-Y,(-X)+(-Y)=-(X+Y)).

Addition of two positive Durations are simply defined as field by field addition where missing fields are treated as 0.  

결과의 Duration 의 필드는, 2 개의 입력 Duration 의 각 필드가 설정되어 있지 않은 경우에게만, 설정되지 않습니다.  

lhs.add(rhs)lhs.signum() *rhs.signum()! =-1 또는 그러한 양쪽 모두 정규화되고 있는 경우, 항상 성공합니다.

파라미터:
rhs - 이 Duration 에 추가하는 Duration
반환값:
null 이외의 유효한 Duration 객체
예외:
NullPointerException - rhs 파라미터가 null 의 경우
IllegalStateException - 2 개의 듀레이션을 의미상 추가할 수 없는 경우. 예를 들어, 부의 1 일을 1 개월에 추가하면(자), 이 예외가 생성되는
관련 항목:
subtract(Duration)

addTo

public abstract void addTo(Calendar  calendar)
이 듀레이션을 Calendar 객체에 추가합니다.

YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS, 및 MILLISECONDS 필드가 존재하는 경우, 이 차례로,Calendar.add(int, int) 를 호출합니다. Calendar 클래스에서는 int 를 사용해 값을 보관 유지하기 위해(때문에), 이 메소드가 정상적으로 기능하지 않는 것이 있습니다 (예를 들어, 필드의 값이 int 의 범위를 넘는 경우).

게다가 이 Duration 클래스는 그레고리오듀레이션이기 (위해)때문에, 지정된 Calendar 객체가 다른 달력 시스템에 근거하는 경우, 이 메소드는 올바르게 기능하지 않습니다.

Duration 객체의 밀리 세컨드를 넘는 소수부는 단지 무시됩니다. 예를 들어, 이 듀레이션이 P1. 23456S 의 경우, SECONDS 에 1 이 추가되어 MILLISECONDS 에 234 가 추가되어, 나머지의 부분은 사용되지 않습니다.

Calendar.add(int, int) 에서는 int 를 사용하고 있기 (위해)때문에, Duration 의 필드의 값이 int 의 범위를 넘는 경우에, 지정한 Calendar 의 오버플로우나 언더 플로우(underflow)가 발생합니다. XMLGregorianCalendar.add(Duration) 에서는, 오버플로우나 언더 플로우(underflow)의 문제를 회피하면서, 이 메소드와 같은 기본 연산을 실행할 수 있습니다.

파라미터:
calendar - 치를 변경하는 Calender 객체
예외:
NullPointerException - calendar 파라미터가 null 의 경우

addTo

public void addTo(Date  date)
이 듀레이션을 Date 객체에 추가합니다.

지정한 일자가 우선 GregorianCalendar 에 변환되어 다음에,addTo(Calendar) 메소드와 완전히 똑같이, 듀레이션이 추가됩니다.

갱신된 시점이 다시 Date 객체에 변환되어, 지정한 Date 객체의 갱신에 사용됩니다.

이것에는, 달과 해의 듀레이션을 정확하게 판단하기 위해서(때문에), 얼마인가의 중복 한 계산이 필요하게 됩니다.

파라미터:
date - 치를 변경하는 Date 객체
예외:
NullPointerException - date 파라미터가 null 의 경우

subtract

public Duration  subtract(Duration  rhs)

값이 this-rhs 인 새로운 듀레이션을 계산합니다.

 

다음에 예를 나타냅니다.

 "1 일" - "-3 일" = "4 일"
 "1 년" - "1 일" = IllegalStateException
 "-(1 시간, 50 분 )" - "-20 분" = "-(1 시간, 30 분 )"
 "15 시간" - "-3 일" = "3 일과 15 시간"
 "1 년" - "-1 일" = "1 년과 1 일"
 
 

의미상 1 개월부터 1 일을 감산할 수 없기 때문에,IllegalStateException 로 연산이 실패하는 경우가 있습니다.

 

형식상, 계산은 다음과 같이 정의됩니다. 우선, 가산하는 2 개의 Duration 는, 범용성을 잃지 않고 ,함께 정이다고 하는 (즉,(-X) -Y=-(X+Y),X-(-Y) =X+Y,(-X)-(-Y)=-(X-Y)).

 

다음에 2 개의 듀레이션이 필드 마다 감산됩니다. 0 이외의 필드 F 의 기호가 최상정도 필드의 기호와 다른 경우, 1 (F 가 부의 경우) 또는 -1 (그 이외의 경우)이 F 의 근처의 상위의 단위로부터 빌릴 수 있습니다.

 

이 프로세스는, 0 이외의 모든 필드의 기호가 같게 될 때까지 반복해집니다.

 

날 필드에서 빌린 것이 발생하는 경우 (즉, 날을 보정하기 위해서 1 개월 또는 -1 개월을 빌릴 필요가 있는 경우),IllegalStateException 가 throw 되어 계산이 실패합니다.

파라미터:
rhs - 이 Duration 로부터 감산하는 Duration
반환값:
Duration 로부터 rhs 를 감산해 작성되는 새로운 Duration
예외:
IllegalStateException - 2 개의 듀레이션을 의미상 감산할 수 없는 경우. 예를 들어, 예를 들어, 1 개월부터 1 일을 감산하면(자), 이 예외가 생성된다
NullPointerException - rhs 파라미터가 null 의 경우
관련 항목:
add(Duration)

multiply

public Duration  multiply(int factor)

값이 이 듀레이션의 값보다 factor 배 긴 새로운 듀레이션을 계산합니다.

 

이 메소드는 편의상 제공되고 있습니다. 기능적으로 다음의 코드와 같습니다.

 multiply(new BigDecimal(String.valueOf(factor)))
 

파라미터:
factor - 작성하는 새로운 Duration 의 길게 하는 계수
반환값:
Duration 보다 factor 배 긴 새로운 Duration
관련 항목:
multiply(BigDecimal)

multiply

public abstract Duration  multiply(BigDecimal  factor)
값이 이 듀레이션의 값보다 factor 배 긴 새로운 듀레이션을 계산합니다.

다음에 예를 나타냅니다.

 "P1M" (1 개월) * "12" = "P12M" (12 개월)
 "PT1M" (1 분 ) * "0.3" = "PT18S" (18 초)
 "P1M" (1 개월) * "1.5" = IllegalStateException
 

Duration 클래스는 불변인 모아 두어 이 메소드는, 이 객체의 값을 변경하지 않습니다. 새로운 Duration 객체를 계산해, 그것을 돌려줄 뿐입니다.

연산은 BigDecimal 의 정밀도로, 필드 마다 실행됩니다. 초를 제외한 모든 필드는 정수만을 보관 유지하도록(듯이) 제한되고 있기 (위해)때문에, 계산에 의해 생성된 소수는 모두 하위의 단위로 늦출 수 있습니다. 예를 들어, P1D (1 일)에 0.5 를 걸면(자), 0.5 일이 됩니다만, 이것은 PT12H (12 시간)로 늦출 수 있습니다. 달의 소수부를 의미상, 날로 늦추고 할 수 없는 경우, 또는 해를 달로 늦추고 할 수 없는 경우,IllegalStateException 가 throw 됩니다. 예를 들어, 1 개월에 0.5 를 걸었을 경우 등입니다.

IllegalStateException 를 피하기 (위해)때문에,normalizeWith(Calendar) 메소드를 사용해, 해 및 달필드를 삭제합니다.

파라미터:
factor - 걸치는 수
반환값:
null 이외의 유효한 Duration 객체를 돌려준다
예외:
IllegalStateException - 월 필드의 연산으로 소수가 생성되었을 경우
NullPointerException - factor 파라미터가 null 의 경우

negate

public abstract Duration  negate()
값이 -this 인 새로운 Duration 객체를 돌려줍니다.

Duration 클래스는 불변인 모아 두어 이 메소드는, 이 객체의 값을 변경하지 않습니다. 새로운 Duration 객체를 계산해, 그것을 돌려줄 뿐입니다.

반환값:
항상 null 이외의 유효한 Duration 객체를 돌려준다

normalizeWith

public abstract Duration  normalizeWith(Calendar  startTimeInstant)

특정의 시점을 참조점으로서 사용해, 해 및 달필드를 날 필드로 변환합니다.

 

예를 들어, 개시시각인스턴스를 「July 8th 2003, 17:40:32」(으)로서, 1 개월의 듀레이션을 31 일에 정규화합니다.

 

형식상, 다음과 같이 계산됩니다.

  1. 지정한 Calendar 객체가 복제된다
  2. Calendar.add(int, int) 메소드를 사용해, 년, 월, 일필드가 Calendar 객체에 추가된다
  3. 2 개의 Calendar 의 차이가 밀리 세컨드로 계산되고 나서 날에 변환된다. 서머타임을 위해서(때문에) 잉여가 나왔을 경우는, 파기된다
  4. 계산된 날과 이 Duration 객체의 시간, 분 , 초필드를 사용해, 새로운 Duration 객체가 구축된다
 

Calendar 클래스에서는 int 를 사용해, 해 및 달의 값을 보관 유지하기 위해(때문에), Duration 객체의 해 또는 달필드에 현저하고 큰 값을 보관 유지하는 경우에, 이 메소드는 예상하지 않는 결과를 생성하는 일이 있습니다.

파라미터:
startTimeInstant - Calendar 참조점
반환값:
Duration 의 해 및 달의, 날로서의 Duration
예외:
NullPointerException - startTimeInstant 파라미터가 null 의 경우

compare

public abstract int compare(Duration  duration)

Duration 인스턴스와 부분 순서 릴레이션을 비교합니다.

 

비교 결과는 「W3C XML Schema 1.0 Part 2」의 섹션 3.2. 7.6. 2 「Order relation on duration」 에 따를 필요가 있습니다.

 

반환값:

파라미터:
duration - 비교하는 듀레이션
반환값:
this DurationDatatypeConstants.LESSER ,DatatypeConstants.EQUAL ,DatatypeConstants.GREATER 또는 DatatypeConstants.INDETERMINATE (으)로서의 duration 파라미터의 관계
예외:
UnsupportedOperationException - W3C XML Schema 가 큰, 작은, 혹은 정확한 값을 임의에 허가하는 등, 구현이 요구를 적절히 처리할 수 없는 경우는, 요구가 구현 능력을 넘고 있다 가능성이 있다
NullPointerException - durationnull 의 경우
관련 항목:
isShorterThan(Duration) , isLongerThan(Duration)

isLongerThan

public boolean isLongerThan(Duration  duration)

이 Duration 객체가 다른 Duration 객체보다 확실히 긴지 어떤지를 체크합니다.

 

XML Schema 1.0 스펙의 섹션 3.2. 6.2 에 정의되고 있도록(듯이) X>Y 의 경우에게만 Duration X 는 Y 보다 「길고」집니다.

 

예를 들어, P1D (1 일) > PT12H (12 시간), 및 P2Y (2 년) > P23M (23 개월)가 됩니다.

파라미터:
duration - 이 Duration 에 비추어 판정하는 Duration
반환값:
이 객체에 의해 나타난 듀레이션이 지정되었다 긴 경우는 true, 그렇지 않은 경우는 false
예외:
UnsupportedOperationException - W3C XML Schema 가 큰, 작은, 혹은 정확한 값을 임의에 허가하는 등, 구현이 요구를 적절히 처리할 수 없는 경우는, 요구가 구현 능력을 넘고 있다 가능성이 있다
NullPointerException - duration 가 null 의 경우
관련 항목:
isShorterThan(Duration) , compare(Duration duration)

isShorterThan

public boolean isShorterThan(Duration  duration)

이 Duration 객체가 다른 Duration 객체보다 확실히 짧은지 어떤지를 체크합니다.

파라미터:
duration - 이 Duration 에 비추어 판정하는 Duration
반환값:
Duration 파라미터가 이 Duration 보다 짧은 경우는 true, 그렇지 않은 경우는 false
예외:
UnsupportedOperationException - W3C XML Schema 가 큰, 작은, 혹은 정확한 값을 임의에 허가하는 등, 구현이 요구를 적절히 처리할 수 없는 경우는, 요구가 구현 능력을 넘고 있다 가능성이 있다
NullPointerException - duration 가 null 의 경우
관련 항목:
isLongerThan(Duration duration) , compare(Duration duration)

equals

public boolean equals(Object  duration)

이 Duration 객체가 다른 Duration 객체와 동일한지 어떤지를 체크합니다.

 

예를 들어, P1D (1 일)는 PT24H (24 시간)와 같습니다.

 

t+X 와 t+Y 의 시점이 XML Schema 1.0 스펙의 섹션 3.2. 6.2 로 지정된 모든 테스트 시점과 같은 경우에게만, Duration X 는 Y 와 같게 됩니다.

 

예를 들어, 1 개월과 30 일 등, 2 개의 Duration 가 「비교 불가능」인 경우가 있습니다. 다음에 예를 나타냅니다.

 ! new Duration("P1M"). isShorterThan(new Duration("P30D"))
 ! new Duration("P1M"). isLongerThan(new Duration("P30D"))
 ! new Duration("P1M"). equals(new Duration("P30D"))
 

오버라이드(override):
클래스 Object 내의 equals
파라미터:
duration - 이 Duration 라고 비교되는 객체
반환값:
이 듀레이션이 duration 와 같은 길이의 경우는 true. durationnull, Duration 객체가 아닌, 또는 이 듀레이션과 길이가 다른 경우는 false
예외:
UnsupportedOperationException - W3C XML Schema 가 큰, 작은, 혹은 정확한 값을 임의에 허가하는 등, 구현이 요구를 적절히 처리할 수 없는 경우는, 요구가 구현 능력을 넘고 있다 가능성이 있는
관련 항목:
compare(Duration duration)

hashCode

public abstract int hashCode()
equals 메소드의 정의에 일치하는 해시 코드를 돌려줍니다.

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

toString

public String  toString()

Duration ObjectString 표현을 돌려줍니다.

 

결과는, XML Schema 1.0 스펙에 따라 포맷 되고 있어 나중에 언제라도 DatatypeFactory.newDuration(String lexicalRepresentation) 에 의해, 대응하는 Duration Object 에 해석할 수 있습니다.

 

형식상, 이하는 임의의 Duration Object x 를 보관 유지합니다.

 new Duration(x.toString()). equals(x)
 

오버라이드(override):
클래스 Object 내의 toString
반환값:
Durationnull 이외의 유효한 String 표현

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 도 참조해 주세요.