Class SpreadsheetDate
- All Implemented Interfaces:
Serializable
,Comparable
,MonthConstants
Be aware that there is a deliberate bug in Excel that recognises the year 1900 as a leap year when in fact it is not a leap year. You can find more information on the Microsoft website in article Q181370:
http://support.microsoft.com/support/kb/articles/Q181/3/70.asp
Excel uses the convention that 1-Jan-1900 = 1. This class uses the convention 1-Jan-1900 = 2. The result is that the day number in this class will be different to the Excel figure for January and February 1900...but then Excel adds in an extra day (29-Feb-1900 which does not actually exist!) and from that point forward the day numbers will match.
- See Also:
-
Field Summary
Fields inherited from class org.jfree.chart.date.SerialDate
DATE_FORMAT_SYMBOLS, FIRST_WEEK_IN_MONTH, FOLLOWING, FOURTH_WEEK_IN_MONTH, FRIDAY, INCLUDE_BOTH, INCLUDE_FIRST, INCLUDE_NONE, INCLUDE_SECOND, LAST_WEEK_IN_MONTH, MAXIMUM_YEAR_SUPPORTED, MINIMUM_YEAR_SUPPORTED, MONDAY, NEAREST, PRECEDING, SATURDAY, SECOND_WEEK_IN_MONTH, SERIAL_LOWER_BOUND, SERIAL_UPPER_BOUND, SUNDAY, THIRD_WEEK_IN_MONTH, THURSDAY, TUESDAY, WEDNESDAY
-
Constructor Summary
ConstructorDescriptionSpreadsheetDate
(int serial) Standard constructor - creates a new date object representing the specified day number (which should be in the range 2 to 2958465.SpreadsheetDate
(int day, int month, int year) Creates a new date instance. -
Method Summary
Modifier and TypeMethodDescriptionint
compare
(SerialDate other) Returns the difference (in days) between this date and the specified 'other' date.int
Implements the method required by the Comparable interface.boolean
Tests the equality of this date with an arbitrary object.int
Returns the day of the month.int
Returns a code representing the day of the week.int
getMonth()
Returns the month (January = 1, February = 2, March = 3).int
getYYYY()
Returns the year (assume a valid range of 1900 to 9999).int
hashCode()
Returns a hash code for this object instance.boolean
isAfter
(SerialDate other) Returns true if this SerialDate represents the same date as the specified SerialDate.boolean
isBefore
(SerialDate other) Returns true if this SerialDate represents an earlier date compared to the specified SerialDate.boolean
isInRange
(SerialDate d1, SerialDate d2) Returnstrue
if thisSerialDate
is within the specified range (INCLUSIVE).boolean
isInRange
(SerialDate d1, SerialDate d2, int include) Returns true if this SerialDate is within the specified range (caller specifies whether or not the end-points are included).boolean
isOn
(SerialDate other) Returns true if this SerialDate represents the same date as the specified SerialDate.boolean
isOnOrAfter
(SerialDate other) Returns true if this SerialDate represents the same date as the specified SerialDate.boolean
isOnOrBefore
(SerialDate other) Returns true if this SerialDate represents the same date as the specified SerialDate.toDate()
Returns ajava.util.Date
equivalent to this date.int
toSerial()
Returns the serial number for the date, where 1 January 1900 = 2 (this corresponds, almost, to the numbering system used in Microsoft Excel for Windows and Lotus 1-2-3).Methods inherited from class org.jfree.chart.date.SerialDate
addDays, addMonths, addYears, createInstance, createInstance, createInstance, getDescription, getEndOfCurrentMonth, getFollowingDayOfWeek, getFollowingDayOfWeek, getMonths, getMonths, getNearestDayOfWeek, getNearestDayOfWeek, getPreviousDayOfWeek, getPreviousDayOfWeek, isLeapYear, isValidMonthCode, isValidWeekdayCode, isValidWeekInMonthCode, lastDayOfMonth, leapYearCount, monthCodeToQuarter, monthCodeToString, monthCodeToString, relativeToString, setDescription, stringToMonthCode, stringToWeekdayCode, toString, weekdayCodeToString, weekInMonthToString
-
Constructor Details
-
SpreadsheetDate
Creates a new date instance.- Parameters:
day
- the day (in the range 1 to 28/29/30/31).month
- the month (in the range 1 to 12).year
- the year (in the range 1900 to 9999).
-
SpreadsheetDate
Standard constructor - creates a new date object representing the specified day number (which should be in the range 2 to 2958465.- Parameters:
serial
- the serial number for the day (range: 2 to 2958465).
-
-
Method Details
-
toSerial
Returns the serial number for the date, where 1 January 1900 = 2 (this corresponds, almost, to the numbering system used in Microsoft Excel for Windows and Lotus 1-2-3).- Specified by:
toSerial
in classSerialDate
- Returns:
- The serial number of this date.
-
toDate
Returns ajava.util.Date
equivalent to this date.- Specified by:
toDate
in classSerialDate
- Returns:
- The date.
-
getYYYY
Returns the year (assume a valid range of 1900 to 9999).- Specified by:
getYYYY
in classSerialDate
- Returns:
- The year.
-
getMonth
Returns the month (January = 1, February = 2, March = 3).- Specified by:
getMonth
in classSerialDate
- Returns:
- The month of the year.
-
getDayOfMonth
Returns the day of the month.- Specified by:
getDayOfMonth
in classSerialDate
- Returns:
- The day of the month.
-
getDayOfWeek
Returns a code representing the day of the week.The codes are defined in the
SerialDate
class as:SUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
, andSATURDAY
.- Specified by:
getDayOfWeek
in classSerialDate
- Returns:
- A code representing the day of the week.
-
equals
Tests the equality of this date with an arbitrary object.This method will return true ONLY if the object is an instance of the
SerialDate
base class, and it represents the same day as thisSpreadsheetDate
. -
hashCode
Returns a hash code for this object instance. -
compare
Returns the difference (in days) between this date and the specified 'other' date.- Specified by:
compare
in classSerialDate
- Parameters:
other
- the date being compared to.- Returns:
- The difference (in days) between this date and the specified 'other' date.
-
compareTo
Implements the method required by the Comparable interface.- Parameters:
other
- the other object (usually another SerialDate).- Returns:
- A negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
-
isOn
Returns true if this SerialDate represents the same date as the specified SerialDate.- Specified by:
isOn
in classSerialDate
- Parameters:
other
- the date being compared to.- Returns:
true
if this SerialDate represents the same date as the specified SerialDate.
-
isBefore
Returns true if this SerialDate represents an earlier date compared to the specified SerialDate.- Specified by:
isBefore
in classSerialDate
- Parameters:
other
- the date being compared to.- Returns:
true
if this SerialDate represents an earlier date compared to the specified SerialDate.
-
isOnOrBefore
Returns true if this SerialDate represents the same date as the specified SerialDate.- Specified by:
isOnOrBefore
in classSerialDate
- Parameters:
other
- the date being compared to.- Returns:
true
if this SerialDate represents the same date as the specified SerialDate.
-
isAfter
Returns true if this SerialDate represents the same date as the specified SerialDate.- Specified by:
isAfter
in classSerialDate
- Parameters:
other
- the date being compared to.- Returns:
true
if this SerialDate represents the same date as the specified SerialDate.
-
isOnOrAfter
Returns true if this SerialDate represents the same date as the specified SerialDate.- Specified by:
isOnOrAfter
in classSerialDate
- Parameters:
other
- the date being compared to.- Returns:
true
if this SerialDate represents the same date as the specified SerialDate.
-
isInRange
Returnstrue
if thisSerialDate
is within the specified range (INCLUSIVE). The date order of d1 and d2 is not important.- Specified by:
isInRange
in classSerialDate
- Parameters:
d1
- a boundary date for the range.d2
- the other boundary date for the range.- Returns:
- A boolean.
-
isInRange
Returns true if this SerialDate is within the specified range (caller specifies whether or not the end-points are included). The order of d1 and d2 is not important.- Specified by:
isInRange
in classSerialDate
- Parameters:
d1
- one boundary date for the range.d2
- a second boundary date for the range.include
- a code that controls whether or not the start and end dates are included in the range.- Returns:
true
if this SerialDate is within the specified range.
-