Class GDurationBuilder

    • Constructor Detail

      • GDurationBuilder

        public GDurationBuilder()
        Constructs an empty GDurationBuilder representing zero seconds.
      • GDurationBuilder

        public GDurationBuilder​(String s)
        Constructs a GDuration from a lexical representation.
      • GDurationBuilder

        public GDurationBuilder​(int sign,
                                int year,
                                int month,
                                int day,
                                int hour,
                                int minute,
                                int second,
                                BigDecimal fraction)
        Constructs a GDurationBuilder with the specified sign, year, month, day, hours, minutes, seconds, and optional fractional seconds.
        sign - +1 for a positive duration, -1 for a negative duration
        IllegalArgumentException - if the sign is not 1 or -1
      • GDurationBuilder

        public GDurationBuilder​(GDurationSpecification gDuration)
        Constructs a GDurationBuilder from another GDurationBuilderSpecification.
    • Method Detail

      • clone

        public Object clone()
        Builds another GDurationBuilder with the same value as this one.
      • toGDuration

        public GDuration toGDuration()
        Builds a GDuration from this GDurationBuilder.
      • addGDuration

        public void addGDuration​(GDurationSpecification duration)
        Adds to this duration. Does a fieldwise add, with no normalization.
      • subtractGDuration

        public void subtractGDuration​(GDurationSpecification duration)
        Subtracts from this duration. Does a fieldwise subtraction, with no normalization.
      • setSign

        public final void setSign​(int sign)
        Sets the sign.
      • setYear

        public void setYear​(int year)
        Sets the year component.
      • setMonth

        public void setMonth​(int month)
        Sets the month component.
      • setDay

        public void setDay​(int day)
        Sets the day component.
      • setHour

        public void setHour​(int hour)
        Sets the hour component.
      • setMinute

        public void setMinute​(int minute)
        Sets the minute component.
      • setSecond

        public void setSecond​(int second)
        Sets the second component.
      • setFraction

        public void setFraction​(BigDecimal fraction)
        Sets the fraction-of-second component.
      • getSign

        public final int getSign()
        Returns the sign of the duration: +1 is forwards and -1 is backwards in time. This value does not necessarily reflect the true direction of the duration if the duration is not normalized or not normalizable.
        Specified by:
        getSign in interface GDurationSpecification
      • isValid

        public boolean isValid()
        Returns true if all of the individual components of the duration are nonnegative.
        Specified by:
        isValid in interface GDurationSpecification
      • normalize

        public void normalize()
        Normalize a duration value. This ensures that months, hours, minutes, seconds, and fractions are positive and within the ranges 0..11, 0..23, 0..59, etc. Negative durations are indicated by a negative sign rather than negative components.

        Most duration specifications can be normalized to valid durations with all positive components, but not all of them can.

        The only situations which cannot be normalized are where the year/month and the day/hour/minute/second offsets are of opposite sign. Days cannot be carried into months since the length of a Gregorian month is variable depending on when the duration is applied. In these cases, this method normalizes the components so that "day" is the only negative component.

      • compareToGDuration

        public final int compareToGDuration​(GDurationSpecification duration)
        Comparison to another GDuration.
        • Returns -1 if this < duration. (less-than)
        • Returns 0 if this == duration. (equal)
        • Returns 1 if this > duration. (greater-than)
        • Returns 2 if this <> duration. (incomparable)
        Two instances are incomparable if they have different amounts of information.
        Specified by:
        compareToGDuration in interface GDurationSpecification
      • toString

        public String toString()
        The natural string representation of the duration.

        Any components that are zero are omitted. Note that if the duration is invalid, i.e., it has negative components, those negative components are serialized out here. To check for validity, use the isValid() method; and to normalize most durations to a valid form use the normalize() method.

        toString in class Object
      • stripTrailingZeros

        public static String stripTrailingZeros​(String s)