## org.jfree.data.time
Class Week

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

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

    public class Week

extends RegularTimePeriod
implements java.io.Serializable

A calendar week. All years are considered to have 53 weeks, numbered from 1 to 53, although in many cases the 53rd week is empty. Most of the time, the 1st week of the year *begins* in the previous calendar year, but it always finishes in the current year (this behaviour matches the workings of the `GregorianCalendar` class).

This class is immutable, which is a requirement for all `RegularTimePeriod` subclasses.

See Also:
  Serialized Form

Field Summary
`static int` `FIRST_WEEK_IN_YEAR` Constant for the first week in the year.
`static int` `LAST_WEEK_IN_YEAR` Constant for the last week in the year.

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
`Week()` Creates a new time period for the week in which the current system date/time falls.
`Week(java.util.Date time)` Creates a time period for the week in which the specified date/time falls, using the default time zone and locale (the locale can affect the day-of-the-week that marks the beginning of the week, as well as the minimal number of days in the first week of the year).
`Week(java.util.Date time, java.util.TimeZone zone)` Deprecated. As of 1.0.7, use `Week(Date, TimeZone, Locale)`.
`Week(java.util.Date time, java.util.TimeZone zone, java.util.Locale locale)` Creates a time period for the week in which the specified date/time falls, calculated relative to the specified time zone.
`Week(int week, int year)` Creates a time period representing the week in the specified year.
`Week(int week, Year year)` Creates a time period representing the week in the specified year.

Method Summary
`int` `compareTo(java.lang.Object o1)` Returns an integer indicating the order of this Week object relative to the specified object: negative == before, zero == same, positive == after.
`boolean` `equals(java.lang.Object obj)` Tests the equality of this Week object to an arbitrary object.
`long` `getFirstMillisecond()` Returns the first millisecond of the week.
`long` `getFirstMillisecond(java.util.Calendar calendar)` Returns the first millisecond of the week, evaluated using the supplied calendar (which determines the time zone).
`long` `getLastMillisecond()` Returns the last millisecond of the week.
`long` `getLastMillisecond(java.util.Calendar calendar)` Returns the last millisecond of the week, evaluated using the supplied calendar (which determines the time zone).
`long` `getSerialIndex()` Returns a serial index number for the week.
`int` `getWeek()` Returns the week.
`Year` `getYear()` Returns the year in which the week falls.
`int` `getYearValue()` Returns the year in which the week falls, as an integer value.
`int` `hashCode()` Returns a hash code for this object instance.
`RegularTimePeriod` `next()` Returns the week following this one.
`static Week` `parseWeek(java.lang.String s)` Parses the string argument as a week.
`void` `peg(java.util.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).
`RegularTimePeriod` `previous()` Returns the week preceding this one.
`java.lang.String` `toString()` Returns a string representing the week (e.g.

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

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

Field Detail

### FIRST_WEEK_IN_YEAR

    public static final int FIRST_WEEK_IN_YEAR

  Constant for the first week in the year.

  See Also:
    Constant Field Values

### LAST_WEEK_IN_YEAR

    public static final int LAST_WEEK_IN_YEAR

  Constant for the last week in the year.

  See Also:
    Constant Field Values

Constructor Detail

### Week

    public Week()

  Creates a new time period for the week in which the current system date/time falls.

### Week

    public Week(int week,
                int year)

  Creates a time period representing the week in the specified year.

  Parameters:
    `week` - the week (1 to 53).
    `year` - the year (1900 to 9999).

### Week

    public Week(int week,
                Year year)

  Creates a time period representing the week in the specified year.

  Parameters:
    `week` - the week (1 to 53).
    `year` - the year (1900 to 9999).

### Week

    public Week(java.util.Date time)

  Creates a time period for the week in which the specified date/time falls, using the default time zone and locale (the locale can affect the day-of-the-week that marks the beginning of the week, as well as the minimal number of days in the first week of the year).

  Parameters:
    `time` - the time (`null` not permitted).
  See Also:
    `Week(Date, TimeZone, Locale)`

### Week

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

  Deprecated. As of 1.0.7, use `Week(Date, TimeZone, Locale)`.

  Creates a time period for the week in which the specified date/time falls, calculated relative to the specified time zone.

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

### Week

    public Week(java.util.Date time,
                java.util.TimeZone zone,
                java.util.Locale locale)

  Creates a time period for the week in which the specified date/time falls, calculated relative to the specified time zone.

  Parameters:
    `time` - the date/time (`null` not permitted).
    `zone` - the time zone (`null` not permitted).
    `locale` - the locale (`null` not permitted).
  Since:
    1.0.7

Method Detail

### getYear

    public Year getYear()

  Returns the year in which the week falls.

  Returns:
    The year (never `null`).

### getYearValue

    public int getYearValue()

  Returns the year in which the week falls, as an integer value.

  Returns:
    The year.

### getWeek

    public int getWeek()

  Returns the week.

  Returns:
    The week.

### getFirstMillisecond

    public long getFirstMillisecond()

  Returns the first millisecond of the week. 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 week.
  See Also:
    `getLastMillisecond()`

### getLastMillisecond

    public long getLastMillisecond()

  Returns the last millisecond of the week. 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 week.
  See Also:
    `getFirstMillisecond()`

### peg

    public void peg(java.util.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).
  Since:
    1.0.3

### previous

    public RegularTimePeriod previous()

  Returns the week preceding this one. This method will return `null` for some lower limit on the range of weeks (currently week 1, 1900). For week 1 of any year, the previous week is always week 53, but week 53 may not contain any days (you should check for this).

  Specified by:
    `previous` in class `RegularTimePeriod`
  Returns:
    The preceding week (possibly `null`).

### next

    public RegularTimePeriod next()

  Returns the week following this one. This method will return `null` for some upper limit on the range of weeks (currently week 53, 9999). For week 52 of any year, the following week is always week 53, but week 53 may not contain any days (you should check for this).

  Specified by:
    `next` in class `RegularTimePeriod`
  Returns:
    The following week (possibly `null`).

### getSerialIndex

    public long getSerialIndex()

  Returns a serial index number for the week.

  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 week, evaluated using the supplied calendar (which determines the time zone).

  Specified by:
    `getFirstMillisecond` in class `RegularTimePeriod`
  Parameters:
    `calendar` - the calendar (`null` not permitted).
  Returns:
    The first millisecond of the week.
  Throws:
    `java.lang.NullPointerException` - if `calendar` is `null`.
  See Also:
    `RegularTimePeriod.getLastMillisecond(Calendar)`

### getLastMillisecond

    public long getLastMillisecond(java.util.Calendar calendar)

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

  Specified by:
    `getLastMillisecond` in class `RegularTimePeriod`
  Parameters:
    `calendar` - the calendar (`null` not permitted).
  Returns:
    The last millisecond of the week.
  Throws:
    `java.lang.NullPointerException` - if `calendar` is `null`.
  See Also:
    `RegularTimePeriod.getFirstMillisecond(Calendar)`

### toString

    public java.lang.String toString()

  Returns a string representing the week (e.g. "Week 9, 2002"). TODO: look at internationalisation.

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

### equals

    public boolean equals(java.lang.Object obj)

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

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    `true` if week and year 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 `java.lang.Object`
  Returns:
    A hash code.

### compareTo

    public int compareTo(java.lang.Object o1)

  Returns an integer indicating the order of this Week 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.

### parseWeek

    public static Week parseWeek(java.lang.String s)

  Parses the string argument as a week.

  This method is required to accept the format "YYYY-Wnn". It will also accept "Wnn-YYYY". Anything else, at the moment, is a bonus.

  Parameters:
    `s` - string to parse.
  Returns:
    `null` if the string is not parseable, the week otherwise.