org.jfree.data.time

## Class SimpleTimePeriod

- java.lang.Object
- - org.jfree.data.time.SimpleTimePeriod

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable, TimePeriod

    public class SimpleTimePeriod
    extends java.lang.Object
    implements TimePeriod, java.lang.Comparable, java.io.Serializable

An arbitrary period of time, measured to millisecond precision using `java.util.Date`.

This class is intentionally immutable (that is, once constructed, you cannot alter the start and end attributes).

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`SimpleTimePeriod(java.util.Date start, java.util.Date end)` Creates a new time allocation.
`SimpleTimePeriod(long start, long end)` Creates a new time allocation.

### Method Summary

Methods
`int` `compareTo(java.lang.Object obj)` Returns an integer that indicates the relative ordering of two time periods.
`boolean` `equals(java.lang.Object obj)` Tests this time period instance for equality with an arbitrary object.
`java.util.Date` `getEnd()` Returns the end date/time.
`long` `getEndMillis()` Returns the end date/time in milliseconds.
`java.util.Date` `getStart()` Returns the start date/time.
`long` `getStartMillis()` Returns the start date/time in milliseconds.
`int` `hashCode()` Returns a hash code for this object instance.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SimpleTimePeriod

    public SimpleTimePeriod(long start,
                    long end)

Creates a new time allocation.

Parameters:
  `start` - the start date/time in milliseconds.
  `end` - the end date/time in milliseconds.

#### SimpleTimePeriod

    public SimpleTimePeriod(java.util.Date start,
                    java.util.Date end)

Creates a new time allocation.

Parameters:
  `start` - the start date/time (`null` not permitted).
  `end` - the end date/time (`null` not permitted).

### Method Detail

#### getStart

    public java.util.Date getStart()

Returns the start date/time.

Specified by:
  `getStart` in interface `TimePeriod`
Returns:
  The start date/time (never `null`).

#### getStartMillis

    public long getStartMillis()

Returns the start date/time in milliseconds.

Returns:
  The start.
Since:
  1.0.10.

#### getEnd

    public java.util.Date getEnd()

Returns the end date/time.

Specified by:
  `getEnd` in interface `TimePeriod`
Returns:
  The end date/time (never `null`).

#### getEndMillis

    public long getEndMillis()

Returns the end date/time in milliseconds.

Returns:
  The end.
Since:
  1.0.10.

#### equals

    public boolean equals(java.lang.Object obj)

Tests this time period instance for equality with an arbitrary object. The object is considered equal if it is an instance of `TimePeriod` and it has the same start and end dates.

Overrides:
  `equals` in class `java.lang.Object`
Parameters:
  `obj` - the other object (`null` permitted).
Returns:
  A boolean.

#### compareTo

    public int compareTo(java.lang.Object obj)

Returns an integer that indicates the relative ordering of two time periods.

Specified by:
  `compareTo` in interface `java.lang.Comparable`
Parameters:
  `obj` - the object (`null` not permitted).
Returns:
  An integer.
Throws:
  `java.lang.ClassCastException` - if `obj` is not an instance of `TimePeriod`.

#### 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 - see:

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

Overrides:
  `hashCode` in class `java.lang.Object`
Returns:
  A hash code.