public class SerialDateUtilities extends java.lang.Object
[1] some of the methods assume that the default Calendar is a GregorianCalendar (used mostly to determine leap years) - so the code won’t work if some other Calendar is the default. I'm not sure how to handle this properly?
[2] a whole bunch of static methods isn't very object-oriented - but I couldn't think of a good way to extend the Date and Calendar classes to add the functions I required, so static methods are doing the job for now.
Constructor and Description |
---|
SerialDateUtilities()
Creates a new utility class for the default locale.
|
Modifier and Type | Method and Description |
---|---|
static int |
countFeb29s(SerialDate start,
SerialDate end)
Returns the number of times that February 29 falls within the specified
date range.
|
static int |
dayCount30(SerialDate start,
SerialDate end)
Returns the number of days between the specified start and end dates,
assuming that there are thirty days in every month (that is,
corresponding to the 30/360 day-count convention).
|
static int |
dayCount30E(SerialDate start,
SerialDate end)
Returns the number of days between the specified start and end dates,
assuming that there are thirty days in every month, and applying the
European adjustment (that is, corresponding to the 30E/360 day-count
convention).
|
static int |
dayCount30ISDA(SerialDate start,
SerialDate end)
Returns the number of days between the specified start and end dates,
assuming that there are thirty days in every month, and applying the
ISDA adjustments (that is, corresponding to the 30/360 (ISDA) day-count
convention).
|
static int |
dayCount30PSA(SerialDate start,
SerialDate end)
Returns the number of days between the specified start and end dates,
assuming that there are thirty days in every month, and applying the PSA
adjustments (that is, corresponding to the 30/360 (PSA) day-count convention).
|
static int |
dayCountActual(SerialDate start,
SerialDate end)
Returns the actual number of days between two dates.
|
java.lang.String[] |
getMonths()
Returns an array of strings representing the months.
|
java.lang.String[] |
getWeekdays()
Returns an array of strings representing the days-of-the-week.
|
static boolean |
isLastDayOfFebruary(SerialDate d)
Returns true if the specified date is the last day in February (that is, the
28th in non-leap years, and the 29th in leap years).
|
int |
stringToWeekday(java.lang.String s)
Converts the specified string to a weekday, using the default locale.
|
public SerialDateUtilities()
public java.lang.String[] getWeekdays()
public java.lang.String[] getMonths()
public int stringToWeekday(java.lang.String s)
s
- a string representing the day-of-the-week.public static int dayCountActual(SerialDate start, SerialDate end)
start
- the start date.end
- the end date.public static int dayCount30(SerialDate start, SerialDate end)
The method handles cases where the start date is before the end date (by switching the dates and returning a negative result).
start
- the start date.end
- the end date.public static int dayCount30ISDA(SerialDate start, SerialDate end)
The method handles cases where the start date is before the end date (by switching the dates around and returning a negative result).
start
- the start date.end
- the end date.public static int dayCount30PSA(SerialDate start, SerialDate end)
start
- the start date.end
- the end date.public static int dayCount30E(SerialDate start, SerialDate end)
The method handles cases where the start date is before the end date (by switching the dates around and returning a negative result).
start
- the start date.end
- the end date.public static boolean isLastDayOfFebruary(SerialDate d)
d
- the date to be tested.public static int countFeb29s(SerialDate start, SerialDate end)
start
- the start date.end
- the end date.