示例#1
0
 /**
  * <p>Returns the length of the duration in milli-seconds.</p>
  *
  * <p>If the seconds field carries more digits than milli-second order,
  * those will be simply discarded (or in other words, rounded to zero.)
  * For example, for any <code>Date</code> value <code>x</code>,</p>
  * <pre>
  * <code>new Duration("PT10.00099S").getTimeInMills(x) == 10000</code>.
  * <code>new Duration("-PT10.00099S").getTimeInMills(x) == -10000</code>.
  * </pre>
  *
  * <p/>
  * Note that this method uses the {@link #addTo(Date)} method,
  * which may work incorrectly with <code>Duration</code> objects with
  * very large values in its fields. See the {@link #addTo(Date)}
  * method for details.
  *
  * @param startInstant
  *      The length of a month/year varies. The <code>startInstant</code> is
  *      used to disambiguate this variance. Specifically, this method
  *      returns the difference between <code>startInstant</code> and
  *      <code>startInstant+duration</code>.
  *
  * @throws NullPointerException
  *      If the startInstant parameter is null.
  *
  * @return milliseconds between <code>startInstant</code> and
  *   <code>startInstant</code> plus this <code>Duration</code>
  *
  * @see #getTimeInMillis(Calendar)
  */
 public long getTimeInMillis(java.util.Date startInstant)
 {
     java.util.Calendar cal = new java.util.GregorianCalendar();
     cal.setTime(startInstant);
     this.addTo(cal);
     return getCalendarTimeInMillis(cal) - startInstant.getTime();
 }
示例#2
0
 /**
  * <p>Calls the {@link Calendar#getTimeInMillis} method.
  * Prior to JDK1.4, this method was protected and therefore
  * cannot be invoked directly.</p>
  *
  * <p>TODO: In future, this should be replaced by <code>cal.getTimeInMillis()</code>.</p>
  *
  * @param cal <code>Calendar</code> to get time in milliseconds.
  *
  * @return Milliseconds of <code>cal</code>.
  */
 private static long getCalendarTimeInMillis(java.util.Calendar cal)
 {
     return cal.getTime().getTime();
 }
示例#3
0
        /**
         * Compares this {@code Timestamp} object with a supplied {@code Timestamp}
         * object.
         *
         * @param theObject
         *            the timestamp to compare with this {@code Timestamp} object,
         *            passed as an {@code Object}.
         * @return <dd>
         *         <dl>
         *         {@code 0} if the two {@code Timestamp} objects are equal in time
         *         </dl>
         *         <dl>
         *         a value {@code &lt; 0} if this {@code Timestamp} object is before
         *         the supplied {@code Timestamp} and a value
         *         </dl>
         *         <dl>
         *         {@code &gt; 0} if this {@code Timestamp} object is after the
         *         supplied {@code Timestamp}
         *         </dl>
         *         </dd>
         * @throws ClassCastException
         *             if the supplied object is not a {@code Timestamp} object.
         */
        public override int compareTo(java.util.Date theObject)
        {
            if (theObject is Timestamp)
            {
                return this.compareTo((Timestamp)theObject);
            }

            if (this.getTime() < theObject.getTime())
            {
                return -1;
            }
            if (this.getTime() > theObject.getTime())
            {
                return 1;
            }

            if (this.getNanos() % 1000000 > 0)
            {
                return 1;
            }
            return 0;
        }