Package 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,MonthConstants,TimePeriod
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 theGregorianCalendarclass).This class is immutable, which is a requirement for all
RegularTimePeriodsubclasses.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intFIRST_WEEK_IN_YEARConstant for the first week in the year.private longfirstMillisecondThe first millisecond.static intLAST_WEEK_IN_YEARConstant for the last week in the year.private longlastMillisecondThe last millisecond.private static longserialVersionUIDFor serialization.private byteweekThe week (1-53).private shortyearThe year in which the week falls.
-
Constructor Summary
Constructors Constructor Description Week()Creates a new time period for the week in which the current system date/time falls.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.Week(java.util.Date time)Creates a time period for the week in which the specified date/time falls.Week(java.util.Date time, java.util.Calendar calendar)Constructs a new instance, based on a particular date/time.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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(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.booleanequals(java.lang.Object obj)Tests the equality of this Week object to an arbitrary object.private static YearevaluateAsYear(java.lang.String s)Creates a year from a string, or returns null (format exceptions suppressed).private static intfindSeparator(java.lang.String s)Finds the first occurrence of ' ', '-', ',' or '.'longgetFirstMillisecond()Returns the first millisecond of the week.longgetFirstMillisecond(java.util.Calendar calendar)Returns the first millisecond of the week, evaluated using the supplied calendar (which determines the time zone).longgetLastMillisecond()Returns the last millisecond of the week.longgetLastMillisecond(java.util.Calendar calendar)Returns the last millisecond of the week, evaluated using the supplied calendar (which determines the time zone).longgetSerialIndex()Returns a serial index number for the week.intgetWeek()Returns the week.YeargetYear()Returns the year in which the week falls.intgetYearValue()Returns the year in which the week falls, as an integer value.inthashCode()Returns a hash code for this object instance.RegularTimePeriodnext()Returns the week following this one.static WeekparseWeek(java.lang.String s)Parses the string argument as a week.voidpeg(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 and information about what day is the first day of the week).RegularTimePeriodprevious()Returns the week preceding this one.private static intstringToWeek(java.lang.String s)Converts a string to a week.java.lang.StringtoString()Returns a string representing the week (e.g.-
Methods inherited from class org.jfree.data.time.RegularTimePeriod
createInstance, downsize, getCalendarInstance, getEnd, getMiddleMillisecond, getMiddleMillisecond, getMillisecond, getStart, setCalendarInstancePrototype, setThreadLocalCalendarInstance
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
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
-
year
private short year
The year in which the week falls.
-
week
private byte week
The week (1-53).
-
firstMillisecond
private long firstMillisecond
The first millisecond.
-
lastMillisecond
private long lastMillisecond
The last millisecond.
-
-
Constructor Detail
-
Week
public Week()
Creates a new time period for the week in which the current system date/time falls. The time zone and locale are determined by the calendar returned byRegularTimePeriod.getCalendarInstance().
-
Week
public Week(int week, int year)Creates a time period representing the week in the specified year. The time zone and locale are determined by the calendar returned byRegularTimePeriod.getCalendarInstance().- 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. The time zone and locale are determined by the calendar returned byRegularTimePeriod.getCalendarInstance().- 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. The time zone and locale are determined by the calendar returned byRegularTimePeriod.getCalendarInstance(). 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 (nullnot permitted).- See Also:
Week(Date, TimeZone, Locale)
-
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 (nullnot permitted).zone- the time zone (nullnot permitted).locale- the locale (nullnot permitted).
-
Week
public Week(java.util.Date time, java.util.Calendar calendar)Constructs a new instance, based on a particular date/time. The time zone and locale are determined by thecalendarparameter.- Parameters:
time- the date/time (nullnot permitted).calendar- the calendar to use for calculations (nullnot permitted).
-
-
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 thepeg(Calendar)method.- Specified by:
getFirstMillisecondin classRegularTimePeriod- 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 thepeg(Calendar)method.- Specified by:
getLastMillisecondin classRegularTimePeriod- 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 and information about what day is the first day of the week).- Specified by:
pegin classRegularTimePeriod- Parameters:
calendar- the calendar (nullnot permitted).
-
previous
public RegularTimePeriod previous()
Returns the week preceding this one. This method will returnnullfor 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). No matter what time zone and locale this instance was created with, the returned instance will use the default calendar for time calculations, obtained withRegularTimePeriod.getCalendarInstance().- Specified by:
previousin classRegularTimePeriod- Returns:
- The preceding week (possibly
null).
-
next
public RegularTimePeriod next()
Returns the week following this one. This method will returnnullfor 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). No matter what time zone and locale this instance was created with, the returned instance will use the default calendar for time calculations, obtained withRegularTimePeriod.getCalendarInstance().- Specified by:
nextin classRegularTimePeriod- Returns:
- The following week (possibly
null).
-
getSerialIndex
public long getSerialIndex()
Returns a serial index number for the week.- Specified by:
getSerialIndexin classRegularTimePeriod- 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:
getFirstMillisecondin classRegularTimePeriod- Parameters:
calendar- the calendar (nullnot permitted).- Returns:
- The first millisecond of the week.
- Throws:
java.lang.NullPointerException- ifcalendarisnull.- 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:
getLastMillisecondin classRegularTimePeriod- Parameters:
calendar- the calendar (nullnot permitted).- Returns:
- The last millisecond of the week.
- Throws:
java.lang.NullPointerException- ifcalendarisnull.- 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:
toStringin classRegularTimePeriod- 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:
equalsin classjava.lang.Object- Parameters:
obj- the object (nullpermitted).- Returns:
trueif 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:
hashCodein classjava.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:
compareToin interfacejava.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:
nullif the string is not parseable, the week otherwise.
-
findSeparator
private static int findSeparator(java.lang.String s)
Finds the first occurrence of ' ', '-', ',' or '.'- Parameters:
s- the string to parse.- Returns:
-1if none of the characters was found, the index of the first occurrence otherwise.
-
evaluateAsYear
private static Year evaluateAsYear(java.lang.String s)
Creates a year from a string, or returns null (format exceptions suppressed).- Parameters:
s- string to parse.- Returns:
nullif the string is not parseable, the year otherwise.
-
stringToWeek
private static int stringToWeek(java.lang.String s)
Converts a string to a week.- Parameters:
s- the string to parse.- Returns:
-1if the string does not contain a week number, the number of the week otherwise.
-
-