Class Duration

  • All Implemented Interfaces:
    Serializable, Comparable<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:
    Serialized Form
    • Constructor Detail

      • Duration

        public Duration()
        Default constructor.
      • 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

        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
    • Method Detail

      • 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.