Class Millisecond

All Implemented Interfaces:
Serializable, Comparable, MonthConstants, TimePeriod

public class Millisecond
extends RegularTimePeriod
implements Serializable
Represents a millisecond. This class is immutable, which is a requirement for all RegularTimePeriod subclasses.
See Also:
Serialized Form
  • Field Details

  • Constructor Details

    • Millisecond

      public Millisecond()
      Constructs a millisecond based on the current system time. The time zone and locale are determined by the calendar returned by RegularTimePeriod.getCalendarInstance().
    • Millisecond

      public Millisecond​(int millisecond, Second second)
      Constructs a millisecond. The time zone and locale are determined by the calendar returned by RegularTimePeriod.getCalendarInstance().
      Parameters:
      millisecond - the millisecond (0-999).
      second - the second (null not permitted).
    • Millisecond

      public Millisecond​(int millisecond, int second, int minute, int hour, int day, int month, int year)
      Creates a new millisecond. The time zone and locale are determined by the calendar returned by RegularTimePeriod.getCalendarInstance().
      Parameters:
      millisecond - the millisecond (0-999).
      second - the second (0-59).
      minute - the minute (0-59).
      hour - the hour (0-23).
      day - the day (1-31).
      month - the month (1-12).
      year - the year (1900-9999).
    • Millisecond

      public Millisecond​(Date time)
      Constructs a new millisecond. The time zone and locale are determined by the calendar returned by RegularTimePeriod.getCalendarInstance().
      Parameters:
      time - the time.
      See Also:
      Millisecond(Date, TimeZone, Locale)
    • Millisecond

      public Millisecond​(Date time, TimeZone zone, Locale locale)
      Creates a millisecond.
      Parameters:
      time - the date-time (null not permitted).
      zone - the time zone (null not permitted).
      locale - the locale (null not permitted).
    • Millisecond

      public Millisecond​(Date time, Calendar calendar)
      Constructs a new instance, based on a particular date/time. The time zone and locale are determined by the calendar parameter.
      Parameters:
      time - the date/time (null not permitted).
      calendar - the calendar to use for calculations (null not permitted).
  • Method Details

    • getSecond

      public Second getSecond()
      Returns the second.
      Returns:
      The second.
    • getMillisecond

      public long getMillisecond()
      Returns the millisecond.
      Returns:
      The millisecond.
    • getFirstMillisecond

      public long getFirstMillisecond()
      Returns the first millisecond of the second. This will be determined relative to the time zone specified in the constructor, or in the calendar instance passed in the most recent call to the peg(Calendar) method.
      Specified by:
      getFirstMillisecond in class RegularTimePeriod
      Returns:
      The first millisecond of the second.
      See Also:
      getLastMillisecond()
    • getLastMillisecond

      public long getLastMillisecond()
      Returns the last millisecond of the second. This will be determined relative to the time zone specified in the constructor, or in the calendar instance passed in the most recent call to the peg(Calendar) method.
      Specified by:
      getLastMillisecond in class RegularTimePeriod
      Returns:
      The last millisecond of the second.
      See Also:
      getFirstMillisecond()
    • peg

      public void peg​(Calendar calendar)
      Recalculates the start date/time and end date/time for this time period relative to the supplied calendar (which incorporates a time zone).
      Specified by:
      peg in class RegularTimePeriod
      Parameters:
      calendar - the calendar (null not permitted).
    • previous

      Returns the millisecond preceding this one. No matter what time zone and locale this instance was created with, the returned instance will use the default calendar for time calculations, obtained with RegularTimePeriod.getCalendarInstance().
      Specified by:
      previous in class RegularTimePeriod
      Returns:
      The millisecond preceding this one.
    • next

      Returns the millisecond following this one. No matter what time zone and locale this instance was created with, the returned instance will use the default calendar for time calculations, obtained with RegularTimePeriod.getCalendarInstance().
      Specified by:
      next in class RegularTimePeriod
      Returns:
      The millisecond following this one.
    • getSerialIndex

      public long getSerialIndex()
      Returns a serial index number for the millisecond.
      Specified by:
      getSerialIndex in class RegularTimePeriod
      Returns:
      The serial index number.
    • equals

      public boolean equals​(Object obj)
      Tests the equality of this object against an arbitrary Object.

      This method will return true ONLY if the object is a Millisecond object representing the same millisecond as this instance.

      Overrides:
      equals in class Object
      Parameters:
      obj - the object to compare
      Returns:
      true if milliseconds and seconds of this and object are the same.
    • hashCode

      public int hashCode()
      Returns a hash code for this object instance. The approach described by Joshua Bloch in "Effective Java" has been used here:

      http://developer.java.sun.com/developer/Books/effectivejava /Chapter3.pdf

      Overrides:
      hashCode in class Object
      Returns:
      A hashcode.
    • compareTo

      public int compareTo​(Object obj)
      Returns an integer indicating the order of this Millisecond object relative to the specified object: negative == before, zero == same, positive == after.
      Specified by:
      compareTo in interface Comparable
      Parameters:
      obj - the object to compare
      Returns:
      negative == before, zero == same, positive == after.
    • getFirstMillisecond

      public long getFirstMillisecond​(Calendar calendar)
      Returns the first millisecond of the time period.
      Specified by:
      getFirstMillisecond in class RegularTimePeriod
      Parameters:
      calendar - the calendar (null not permitted).
      Returns:
      The first millisecond of the time period.
      Throws:
      NullPointerException - if calendar is null.
      See Also:
      RegularTimePeriod.getLastMillisecond(Calendar)
    • getLastMillisecond

      public long getLastMillisecond​(Calendar calendar)
      Returns the last millisecond of the time period.
      Specified by:
      getLastMillisecond in class RegularTimePeriod
      Parameters:
      calendar - the calendar (null not permitted).
      Returns:
      The last millisecond of the time period.
      Throws:
      NullPointerException - if calendar is null.
      See Also:
      RegularTimePeriod.getFirstMillisecond(Calendar)