## org.jfree.data.time
Class Day

    java.lang.Object
      org.jfree.data.time.RegularTimePeriod
          org.jfree.data.time.Day

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable, TimePeriod, org.jfree.date.MonthConstants

    public class Day

extends RegularTimePeriod
implements java.io.Serializable

Represents a single day in the range 1-Jan-1900 to 31-Dec-9999. This class is immutable, which is a requirement for all `RegularTimePeriod` subclasses.

See Also:
  Serialized Form

Field Summary
`protected static java.text.DateFormat` `DATE_FORMAT` A standard date formatter.
`protected static java.text.DateFormat` `DATE_FORMAT_LONG` A date formatter for the default locale.
`protected static java.text.DateFormat` `DATE_FORMAT_MEDIUM` A date formatter for the default locale.
`protected static java.text.DateFormat` `DATE_FORMAT_SHORT` A date formatter for the default locale.

Fields inherited from class org.jfree.data.time.RegularTimePeriod
`DEFAULT_TIME_ZONE, WORKING_CALENDAR`

Fields inherited from interface org.jfree.date.MonthConstants
`APRIL, AUGUST, DECEMBER, FEBRUARY, JANUARY, JULY, JUNE, MARCH, MAY, NOVEMBER, OCTOBER, SEPTEMBER`

Constructor Summary
`Day()` Creates a new instance, derived from the system date/time (and assuming the default timezone).
`Day(java.util.Date time)` Constructs a new instance, based on a particular date/time and the default time zone.
`Day(java.util.Date time, java.util.TimeZone zone)` Constructs a new instance, based on a particular date/time and time zone.
`Day(int day, int month, int year)` Constructs a new one day time period.
`Day(org.jfree.date.SerialDate serialDate)` Constructs a new one day time period.

Method Summary
`int` `compareTo(java.lang.Object o1)` Returns an integer indicating the order of this Day object relative to the specified object: negative == before, zero == same, positive == after.
`boolean` `equals(java.lang.Object obj)` Tests the equality of this Day object to an arbitrary object.
`int` `getDayOfMonth()` Returns the day of the month.
`long` `getFirstMillisecond(java.util.Calendar calendar)` Returns the first millisecond of the day, evaluated using the supplied calendar (which determines the time zone).
`long` `getLastMillisecond(java.util.Calendar calendar)` Returns the last millisecond of the day, evaluated using the supplied calendar (which determines the time zone).
`int` `getMonth()` Returns the month.
`org.jfree.date.SerialDate` `getSerialDate()` Returns the day as a `SerialDate`.
`long` `getSerialIndex()` Returns a serial index number for the day.
`int` `getYear()` Returns the year.
`int` `hashCode()` Returns a hash code for this object instance.
`RegularTimePeriod` `next()` Returns the day following this one, or `null` if some limit has been reached.
`static Day` `parseDay(java.lang.String s)` Parses the string argument as a day.
`RegularTimePeriod` `previous()` Returns the day preceding this one.
`java.lang.String` `toString()` Returns a string representing the day.

Methods inherited from class org.jfree.data.time.RegularTimePeriod
`createInstance, downsize, getEnd, getFirstMillisecond, getFirstMillisecond, getLastMillisecond, getLastMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMiddleMillisecond, getStart`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### DATE_FORMAT

    protected static final java.text.DateFormat DATE_FORMAT

  A standard date formatter.

### DATE_FORMAT_SHORT

    protected static final java.text.DateFormat DATE_FORMAT_SHORT

  A date formatter for the default locale.

### DATE_FORMAT_MEDIUM

    protected static final java.text.DateFormat DATE_FORMAT_MEDIUM

  A date formatter for the default locale.

### DATE_FORMAT_LONG

    protected static final java.text.DateFormat DATE_FORMAT_LONG

  A date formatter for the default locale.

Constructor Detail

### Day

    public Day()

  Creates a new instance, derived from the system date/time (and assuming the default timezone).

### Day

    public Day(int day,
               int month,
               int year)

  Constructs a new one day time period.

  Parameters:
    `day` - the day-of-the-month.
    `month` - the month (1 to 12).
    `year` - the year (1900 <= year <= 9999).

### Day

    public Day(org.jfree.date.SerialDate serialDate)

  Constructs a new one day time period.

  Parameters:
    `serialDate` - the day (`null` not permitted).

### Day

    public Day(java.util.Date time)

  Constructs a new instance, based on a particular date/time and the default time zone.

  Parameters:
    `time` - the time (`null` not permitted).

### Day

    public Day(java.util.Date time,
               java.util.TimeZone zone)

  Constructs a new instance, based on a particular date/time and time zone.

  Parameters:
    `time` - the date/time.
    `zone` - the time zone.

Method Detail

### getSerialDate

    public org.jfree.date.SerialDate getSerialDate()

  Returns the day as a `SerialDate`.

  Note: the reference that is returned should be an instance of an immutable `SerialDate` (otherwise the caller could use the reference to alter the state of this Day instance, and Day is supposed to be immutable).

  Returns:
    The day as a SerialDate.

### getYear

    public int getYear()

  Returns the year.

  Returns:
    The year.

### getMonth

    public int getMonth()

  Returns the month.

  Returns:
    The month.

### getDayOfMonth

    public int getDayOfMonth()

  Returns the day of the month.

  Returns:
    The day of the month.

### previous

    public RegularTimePeriod previous()

  Returns the day preceding this one.

  Specified by:
    `previous` in class `RegularTimePeriod`
  Returns:
    The day preceding this one.

### next

    public RegularTimePeriod next()

  Returns the day following this one, or `null` if some limit has been reached.

  Specified by:
    `next` in class `RegularTimePeriod`
  Returns:
    The day following this one, or `null` if some limit has been reached.

### getSerialIndex

    public long getSerialIndex()

  Returns a serial index number for the day.

  Specified by:
    `getSerialIndex` in class `RegularTimePeriod`
  Returns:
    The serial index number.

### getFirstMillisecond

    public long getFirstMillisecond(java.util.Calendar calendar)

  Returns the first millisecond of the day, evaluated using the supplied calendar (which determines the time zone).

  Specified by:
    `getFirstMillisecond` in class `RegularTimePeriod`
  Parameters:
    `calendar` - calendar to use.
  Returns:
    The start of the day as milliseconds since 01-01-1970.

### getLastMillisecond

    public long getLastMillisecond(java.util.Calendar calendar)

  Returns the last millisecond of the day, evaluated using the supplied calendar (which determines the time zone).

  Specified by:
    `getLastMillisecond` in class `RegularTimePeriod`
  Parameters:
    `calendar` - calendar to use.
  Returns:
    the end of the day as milliseconds since 01-01-1970.

### equals

    public boolean equals(java.lang.Object obj)

  Tests the equality of this Day object to an arbitrary object. Returns true if the target is a Day instance or a SerialDate instance representing the same day as this object. In all other cases, returns false.

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `obj` - the object.
  Returns:
    a flag indicating whether or not an object is equal to this day.

### 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 `java.lang.Object`
  Returns:
    A hash code.

### compareTo

    public int compareTo(java.lang.Object o1)

  Returns an integer indicating the order of this Day object relative to the specified object: negative == before, zero == same, positive == after.

  Specified by:
    `compareTo` in interface `java.lang.Comparable`
  Parameters:
    `o1` - the object to compare.
  Returns:
    negative == before, zero == same, positive == after.

### toString

    public java.lang.String toString()

  Returns a string representing the day.

  Overrides:
    `toString` in class `RegularTimePeriod`
  Returns:
    A string representing the day.

### parseDay

    public static Day parseDay(java.lang.String s)

  Parses the string argument as a day.

  This method is required to recognise YYYY-MM-DD as a valid format. Anything else, for now, is a bonus.

  Parameters:
    `s` - the date string to parse.
  Returns:
    `null` if the string does not contain any parseable string, the day otherwise.