com.virtualweaver.xotics.datamodel.datatype
Class XdtDuration

java.lang.Object
  extended bycom.virtualweaver.xotics.datamodel.datatype.XdtDuration
All Implemented Interfaces:
java.lang.Cloneable

public class XdtDuration
extends java.lang.Object
implements java.lang.Cloneable

A class representing a duration, as used in XML Schema datatypes. This class is the Java type of [@link com.virtualweaver.xotics.datatype.XsdDuration} XSD implementation class. Notes that duration is signed (i.e negative duration run in the past).

Version:
4.1

Field Summary
static XdtDuration MAX_VALUE
          The greatest value an XdtDuration can take.
 
Constructor Summary
XdtDuration()
           
XdtDuration(int y, int m, int d, int h, int mn, double sec, boolean sign)
          Create a duration giving each field.
XdtDuration(long durInMillis)
          Creates a duration with an amount of time in millis.
XdtDuration(java.lang.String durs)
          Creates a duration by parsing its string representation, in format as defined in XSD duration standard.
 
Method Summary
static java.util.GregorianCalendar add(java.util.GregorianCalendar gc, XdtDuration d)
          Adds a duration expressed by an XdtDuration param d to a time in gregorian calendar format.
 XdtDuration add(XdtDuration arg)
          Arithmetic addition between this and param arg.
 java.lang.Object clone()
           
 int compareTo(XdtDuration d)
          Compares this duration with param d.
 XdtDuration divide(double arg)
          Arithmetic division between this and param arg in milliseconds.
 double divide(XdtDuration arg)
          Arithmetic division between this and param arg.
 boolean equals(java.lang.Object o)
           
 int getDay()
           
 int getHour()
           
 int getMinute()
           
 int getMonth()
           
 double getSecond()
          Field second not integer because it contains also millisecond value.
 int getYear()
           
 boolean isPositive()
           
 XdtDuration multiply(double arg)
          Arithmetic multiplication between this and param arg in milliseconds.
 XdtDuration negate()
          Returns opposite version of this.
static XdtDuration subtract(java.util.GregorianCalendar gc1, java.util.GregorianCalendar gc2)
          Subtraction of two date gc1 and gc2 expressed as gregorian calendar.
static java.util.GregorianCalendar subtract(java.util.GregorianCalendar gc, XdtDuration d)
          Subtracts a duration expressed by an XdtDuration param d from a time in gregorian calendar format.
 XdtDuration subtract(XdtDuration arg)
          Arithmetic subtraction between this and param arg.
 long toMillis()
          Converts this into a number of milliseconds, possibly negative.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_VALUE

public static final XdtDuration MAX_VALUE
The greatest value an XdtDuration can take.

Constructor Detail

XdtDuration

public XdtDuration()

XdtDuration

public XdtDuration(long durInMillis)
Creates a duration with an amount of time in millis. A negative value is allowed.

Parameters:
durInMillis - amount of time in millis to convert as duration

XdtDuration

public XdtDuration(int y,
                   int m,
                   int d,
                   int h,
                   int mn,
                   double sec,
                   boolean sign)
Create a duration giving each field. Note that absolute value is taken from each field, only param sign can inform about the sign of the value.

Parameters:
y - the year count
m - the month count
d - the day count
h - the hour count
mn - the minute count
sec - the second count (including millis : 2.33 seconds means 2 seconds 33 millis)
sign - true if duration is positive, false else

XdtDuration

public XdtDuration(java.lang.String durs)
            throws java.lang.IllegalArgumentException
Creates a duration by parsing its string representation, in format as defined in XSD duration standard.

Parameters:
durs - the string representation of a duration
Throws:
java.lang.IllegalArgumentException - if format is invalid
Method Detail

clone

public java.lang.Object clone()

equals

public boolean equals(java.lang.Object o)

toString

public java.lang.String toString()

getYear

public int getYear()

getMonth

public int getMonth()

getDay

public int getDay()

getHour

public int getHour()

getMinute

public int getMinute()

getSecond

public double getSecond()
Field second not integer because it contains also millisecond value.

Returns:
second + millis

isPositive

public boolean isPositive()

toMillis

public long toMillis()
Converts this into a number of milliseconds, possibly negative.

Returns:
this duration as millisecond count

compareTo

public int compareTo(XdtDuration d)
Compares this duration with param d.

Parameters:
d - duration to compare to
Returns:
-1 if this is inferior to d, 1 if this is superior to d, 0 if both values are equal.

negate

public XdtDuration negate()
Returns opposite version of this.

Returns:
-this.

add

public XdtDuration add(XdtDuration arg)
Arithmetic addition between this and param arg.

Parameters:
arg - duration to add to this
Returns:
a new duration as addition result

subtract

public XdtDuration subtract(XdtDuration arg)
Arithmetic subtraction between this and param arg.

Parameters:
arg - duration to subtract from this
Returns:
a new duration as subtraction result

divide

public double divide(XdtDuration arg)
Arithmetic division between this and param arg.

Parameters:
arg - duration to divide from this
Returns:
division result in milliseconds

divide

public XdtDuration divide(double arg)
Arithmetic division between this and param arg in milliseconds.

Parameters:
arg - duration to divide from this expressed in milliseconds
Returns:
division result as duration

multiply

public XdtDuration multiply(double arg)
Arithmetic multiplication between this and param arg in milliseconds.

Parameters:
arg - duration to multiply from this expressed in milliseconds
Returns:
multiply result as duration

add

public static java.util.GregorianCalendar add(java.util.GregorianCalendar gc,
                                              XdtDuration d)
Adds a duration expressed by an XdtDuration param d to a time in gregorian calendar format.

Parameters:
gc - a date as gregorian calendar
d - a duration
Returns:
a new date resulting from performing gc + d

subtract

public static java.util.GregorianCalendar subtract(java.util.GregorianCalendar gc,
                                                   XdtDuration d)
Subtracts a duration expressed by an XdtDuration param d from a time in gregorian calendar format.

Parameters:
gc - a date as gregorian calendar
d - a duration
Returns:
a new date resulting from performing gc - d

subtract

public static XdtDuration subtract(java.util.GregorianCalendar gc1,
                                   java.util.GregorianCalendar gc2)
Subtraction of two date gc1 and gc2 expressed as gregorian calendar. Result is a duration.

Parameters:
gc1 - a reference date
gc2 - a date to subtract
Returns:
a duration resulting from performing gc1 - gc2