org.jfree.data.time

Class Week

Implemented Interfaces:
Comparable, MonthConstants, Serializable, TimePeriod

public class Week
extends RegularTimePeriod
implements 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.

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

Constructor Summary

Week()
Creates a new time period for the week in which the current system date/time falls.
Week(Date time)
Creates a time period for the week in which the specified date/time falls.
Week(Date time, TimeZone zone)
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(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(Object obj)
Tests the equality of this Week object to an arbitrary object.
long
getFirstMillisecond()
Returns the first millisecond of the week.
long
getFirstMillisecond(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(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(String s)
Parses the string argument as a week.
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).
RegularTimePeriod
previous()
Returns the week preceding this one.
String
toString()
Returns a string representing the week (e.g.

Methods inherited from class org.jfree.data.time.RegularTimePeriod

createInstance, downsize, getEnd, getFirstMillisecond, getFirstMillisecond, getFirstMillisecond, getLastMillisecond, getLastMillisecond, getLastMillisecond, getMiddleMillisecond, getMiddleMillisecond, getMiddleMillisecond, getSerialIndex, getStart, next, peg, previous, toString

Field Details

FIRST_WEEK_IN_YEAR

public static final int FIRST_WEEK_IN_YEAR
Constant for the first week in the year.
Field Value:
1

LAST_WEEK_IN_YEAR

public static final int LAST_WEEK_IN_YEAR
Constant for the last week in the year.
Field Value:
53

Constructor Details

Week

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

Week

public Week(Date time)
Creates a time period for the week in which the specified date/time falls.
Parameters:
time - the time (null not permitted).

Week

public Week(Date time,
            TimeZone zone)
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(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).

Method Details

compareTo

public int compareTo(Object o1)
Returns an integer indicating the order of this Week object relative to the specified object: negative == before, zero == same, positive == after.
Parameters:
o1 - the object to compare.
Returns:
negative == before, zero == same, positive == after.

equals

public boolean equals(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.
Parameters:
obj - the object (null permitted).
Returns:
true if week and year of this and object are the same.

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.
Overrides:
getFirstMillisecond in interface RegularTimePeriod
Returns:
The first millisecond of the week.

getFirstMillisecond

public long getFirstMillisecond(Calendar calendar)
Returns the first millisecond of the week, evaluated using the supplied calendar (which determines the time zone).
Overrides:
getFirstMillisecond in interface RegularTimePeriod
Parameters:
calendar - the calendar (null not permitted).
Returns:
The first millisecond of the week.

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.
Overrides:
getLastMillisecond in interface RegularTimePeriod
Returns:
The last millisecond of the week.

getLastMillisecond

public long getLastMillisecond(Calendar calendar)
Returns the last millisecond of the week, evaluated using the supplied calendar (which determines the time zone).
Overrides:
getLastMillisecond in interface RegularTimePeriod
Parameters:
calendar - the calendar (null not permitted).
Returns:
The last millisecond of the week.

getSerialIndex

public long getSerialIndex()
Returns a serial index number for the week.
Overrides:
getSerialIndex in interface RegularTimePeriod
Returns:
The serial index number.

getWeek

public int getWeek()
Returns the week.
Returns:
The week.

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.

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

Returns:
A hash code.

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).
Overrides:
next in interface RegularTimePeriod
Returns:
The following week (possibly null).

parseWeek

public static Week parseWeek(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.

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).
Overrides:
peg in interface 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).
Overrides:
previous in interface RegularTimePeriod
Returns:
The preceding week (possibly null).

toString

public String toString()
Returns a string representing the week (e.g. "Week 9, 2002"). TODO: look at internationalisation.
Overrides:
toString in interface RegularTimePeriod
Returns:
A string representing the week.