Module ical4j.core

Class Duration

All Implemented Interfaces:
Serializable, Comparable<Property>, FluentProperty, Prototype<Property>

public class Duration extends Property
$Id$

Created: [Apr 6, 2004]

Defines a DURATION iCalendar component property.

 3.3.6.  Duration

 Value Name:  DURATION

 Purpose:  This value type is used to identify properties that contain
 a duration of time.

 Format Definition:  This value type is defined by the following
 notation:

 dur-value  = (["+"] / "-") "P" (dur-date / dur-time / dur-week)

 dur-date   = dur-day [dur-time]
 dur-time   = "T" (dur-hour / dur-minute / dur-second)
 dur-week   = 1*DIGIT "W"
 dur-hour   = 1*DIGIT "H" [dur-minute]
 dur-minute = 1*DIGIT "M" [dur-second]
 dur-second = 1*DIGIT "S"
 dur-day    = 1*DIGIT "D"

 Description:  If the property permits, multiple "duration" values are
 specified by a COMMA-separated list of values.  The format is
 based on the [ISO.8601.2004] complete representation basic format
 with designators for the duration of time.  The format can
 represent nominal durations (weeks and days) and accurate
 durations (hours, minutes, and seconds).  Note that unlike
 [ISO.8601.2004], this value type doesn't support the "Y" and "M"
 designators to specify durations in terms of years and months.

 The duration of a week or a day depends on its position in the
 calendar.  In the case of discontinuities in the time scale, such
 as the change from standard time to daylight time and back, the
 computation of the exact duration requires the subtraction or
 addition of the change of duration of the discontinuity.  Leap
 seconds MUST NOT be considered when computing an exact duration.
 When computing an exact duration, the greatest order time
 components MUST be added first, that is, the number of days MUST
 be added first, followed by the number of hours, number of
 minutes, and number of seconds.

 Negative durations are typically used to schedule an alarm to
 trigger before an associated time (see Section 3.8.6.3).

 No additional content value encoding (i.e., BACKSLASH character
 encoding, see Section 3.3.11) are defined for this value type.

 Example:  A duration of 15 days, 5 hours, and 20 seconds would be:

 P15DT5H0M20S

 A duration of 7 weeks would be:

 P7W
 
See Also:
  • Constructor Details

    • Duration

      public Duration()
      Default constructor.
    • Duration

      public Duration(String value)
    • Duration

      public Duration(ParameterList aList, String aValue)
      Parameters:
      aList - a list of parameters for this component
      aValue - a value string for this component
    • Duration

      @Deprecated public Duration(Dur duration)
      Deprecated.
      Parameters:
      duration - a duration value
    • Duration

      public Duration(TemporalAmount duration)
      Parameters:
      duration - a duration value
    • Duration

      @Deprecated public Duration(ParameterList aList, Dur duration)
      Deprecated.
      Parameters:
      aList - a list of parameters for this component
      duration - a duration value
    • Duration

      public Duration(ParameterList aList, TemporalAmount duration)
      Parameters:
      aList - a list of parameters for this component
      duration - a duration value
    • Duration

      @Deprecated public Duration(Date start, Date end)
      Constructs a new duration representing the time between the specified start date and end date.
      Parameters:
      start - the starting time for the duration
      end - the end time for the duration
    • Duration

      public Duration(Temporal start, Temporal end)
      Constructs a new duration representing the time between the specified start date and end date.
      Parameters:
      start - the starting time for the duration
      end - the end time for the duration
  • Method Details

    • getDuration

      public final TemporalAmount getDuration()
      Returns:
      Returns the duration.
    • setValue

      public final void setValue(String aValue)
      Sets the current value of the property.
      Specified by:
      setValue in class Property
      Parameters:
      aValue - a string representation of the property value
    • getValue

      public final String getValue()
      Specified by:
      getValue in class Content
      Returns:
      the content value
    • setDuration

      public final void setDuration(TemporalAmount duration)
      Parameters:
      duration - The duration to set.
    • validate

      public ValidationResult validate() throws ValidationException
      Description copied from class: Property
      Perform validation on a property.
      Specified by:
      validate in class Property
      Throws:
      ValidationException - where the property is not in a valid state
    • newFactory

      protected PropertyFactory<Duration> newFactory()
      Description copied from class: Property
      Returns a new property factory used to create deep copies.
      Specified by:
      newFactory in class Property
      Returns:
      a property factory instance