info.aduna.gee.publication.util
Class WDate

java.lang.Object
  extended by info.aduna.gee.publication.util.WDate
All Implemented Interfaces:
LocalNames, Comparable

public class WDate
extends Object
implements LocalNames, Comparable

ZPad WDate. The WDate object represents a specific day. Note that this class is not compatible with the standard JDK java.util.Date class.


Field Summary
protected  int _daysPast
          The number of complete days since Monday January 1st, 1 AD.
protected static WDate _today
           
protected static long _todayhours
           
protected  String _toString
          A WDate is a fixed entity.
 int date
          The day of the month (between 1 and 31) -- READ-ONLY
protected static int[] dayOfWeekNames
          The "names" of the days of the week.
static String I18N_TODAY_STRING
           
static int MAX_YEAR
           
static int MIN_YEAR
           
 int month
          The month (between 1 and 12) -- READ-ONLY
protected static int[] monthDefaultDays
          The default number of days in each month of the year.
protected static int[] monthNames
          The "names" of each month.
 int year
          The year (e.g.
 
Fields inherited from interface info.aduna.gee.publication.LocalNames
AM, APRIL, AUGUST, BUTTON_ADD, BUTTON_ASSOCIATES_MAY_NOT_EDIT, BUTTON_BACKUP, BUTTON_BOTTOM, BUTTON_CLEAR, BUTTON_CLEAR_CART, BUTTON_DELETE, BUTTON_DESCRIPTION, BUTTON_DOWN, BUTTON_EDIT, BUTTON_EDIT_CLABELS, BUTTON_EDIT_SUBSCRIPTION, BUTTON_EDIT_SUBSCRIPTIONS, BUTTON_ENTRY_FROM_CLIPBOARD, BUTTON_ENTRY_TO_CLIPBOARD, BUTTON_EXIT_EDIT_MODE, BUTTON_FAST_BACKWARD, BUTTON_FAST_FORWARD, BUTTON_FIND_FUTURE, BUTTON_FIND_PAST, BUTTON_INTERNALIZE_ENTRY, BUTTON_LINK, BUTTON_LINK_IN_FRAME, BUTTON_LOCK_ZPAD, BUTTON_MORE_TEXT, BUTTON_NEXTCONTENT, BUTTON_PERSONALIZE, BUTTON_PL0, BUTTON_PL1, BUTTON_PL2, BUTTON_PL3, BUTTON_PL4, BUTTON_PREVIOUSCONTENT, BUTTON_PROVIDE_ENTRY, BUTTON_RE_EXPORT, BUTTON_RE_MANUAL, BUTTON_REPEAT, BUTTON_REPEAT_TODAY, BUTTON_RESTORE, BUTTON_SEND_ORDER, BUTTON_SUGGESTED_DESTINATION, BUTTON_SUMMARY, BUTTON_SYNCHRONIZE, BUTTON_TIME, BUTTON_TODAY, BUTTON_TOMORROW, BUTTON_TOOLS, BUTTON_TOP, BUTTON_UNDO, BUTTON_UP, BUTTON_UPLOAD_IMAGE, BUTTON_YESTERDAY, CONFIRM_BACKUP_ERROR, CONFIRM_CHANGE_ALL_REPEATING, CONFIRM_CLABEL_DEFINITION_FORMAT, CONFIRM_COULD_NOT_SAVE, CONFIRM_DELETE_ALL_REPEATING, CONFIRM_DELETE_EXPIRED, CONFIRM_ERROR, CONFIRM_FILE_CHANGED, CONFIRM_FILE_CHANGED_TITLE, CONFIRM_FILE_REALLY_CHANGED, CONFIRM_FIND_CONTENT, CONFIRM_FIRST_SECTION, CONFIRM_HAS_THEMES_FRAME, CONFIRM_MIXED_TODAY, CONFIRM_NO_MORE_CONTENT, CONFIRM_NOT_A_ZPAD, CONFIRM_NOT_REMOVE_SECTION, CONFIRM_QUESTION, CONFIRM_READONLY_BROWSER, CONFIRM_SURE, CONFIRM_THIS_ZPAD, CONFIRM_TODAY_IS_AT_STARTUP, CONFIRM_TODAY_IS_AT_TRANSFER, CONFIRM_UNDO, DECEMBER, ENTRY_TYPE_APPLET, ENTRY_TYPE_HTML, ENTRY_TYPE_IMAGE, ENTRY_TYPE_OBJECT, ENTRY_TYPE_TEXT, ENTRY_TYPE_TMPLD, ERROR_CONFIG_LOAD, ERROR_DATABASE_LOAD, ERROR_IMAGE_LOAD, ERROR_RESOLVE_LOCATION, ERROR_ZPAD_LOAD, EXC_INVALID_PORT_NUMBER, EXC_NO_GZIP_SUPPORT, EXC_NO_HOSTNAME_SPECIFIED, EXC_UNKNOWN_COMPR, EXC_UNKNOWN_ENCODING, EXC_VELOCITY_NOT_SHOWN, FEBRUARY, FRIDAY, FROM, GETTING_BUTTONS, GETTING_CONTENT, HTML_EDIT_ENTRY, HTML_ENTRY_EXPIRED, HTML_ENTRY_NOT_YET_INSPIRED, HTML_ENTRY_WILL_EXPIRE, HTML_MOVE_ENTRY, HTML_ZPAD_GET_ENTRY, INVALID_USER_LOCATION, JANUARY, JULY, JUNE, LABEL_ACCEPT_BATCH, LABEL_ADD_TO_CART, LABEL_ALL_CLABELS, LABEL_ALLSUB_SECTIONS, LABEL_APPLET_CODE, LABEL_APPLET_CODEBASE, LABEL_AT_STARTUP, LABEL_AT_STARTUP_BRIEF, LABEL_BACKGROUND, LABEL_BATCH_IS_MULTIPLE, LABEL_BATCH_NEW_SECTION, LABEL_BLUE, LABEL_BOTTOMUP_SUBSCRIPTION, LABEL_CART_EMPTY, LABEL_CASE_SENSITIVE, LABEL_CHOOSE_SECTION, LABEL_CHOOSE_TMPL, LABEL_CLABEL_IMAGE, LABEL_CLABEL_OVER_IMAGE, LABEL_CLABEL_RULE, LABEL_CLABELS, LABEL_CLABELS_SELECTED, LABEL_COUNT, LABEL_COVER_SECTIONS, LABEL_COVER_SPECIFIC_BUTTONS, LABEL_COVER_SPECIFIC_ENTRY_BUTTONS, LABEL_COVER_USES_HIERMENU, LABEL_COVER_USES_HIERMENU_ALL_OPTION, LABEL_COVER_USES_INPAGE, LABEL_COVER_USES_JOUST, LABEL_CURRENT_SECTIONS, LABEL_DAILY, LABEL_DATE, LABEL_DAYOFWEEK, LABEL_DESCR, LABEL_DESCRIPTION, LABEL_DESTINATION, LABEL_DONT_INHERIT, LABEL_EDIT_BATCH, LABEL_EMBED_SOURCE, LABEL_ENTRY_HTML, LABEL_ENTRY_IS_TMPL, LABEL_FOREGROUND, LABEL_GREEN, LABEL_HEIGHT, LABEL_HTML_STYLE, LABEL_ID, LABEL_IMAGE_LOCATION, LABEL_IMPORT_CLASSNAME, LABEL_IMPORT_SERVERNAME, LABEL_INHERIT_CLABELS, LABEL_INHERIT_PRIVACY_GROUPS, LABEL_INLINE_DESCRIPTION, LABEL_INPAGE_ALT_TEMPLATE_ID, LABEL_INPAGE_ALT_TEMPLATE_SOURCE, LABEL_INPAGE_SUB_TEMPLATE_ID, LABEL_INPAGE_SUB_TEMPLATE_SOURCE, LABEL_INPAGE_SUBSUB_TEMPLATE_ID, LABEL_INPAGE_SUBSUB_TEMPLATE_SOURCE, LABEL_INPAGE_TEMPLATE_ID, LABEL_INPAGE_TEMPLATE_SOURCE, LABEL_LOADED_FRAMES, LABEL_LOADED_TEMPLATES, LABEL_MONTH, LABEL_MONTHLY, LABEL_MOUNTPOINT, LABEL_MULTISUB_SECTIONS, LABEL_NEVER_EXPIRES, LABEL_NEVER_INSPIRES, LABEL_NEW_CLABEL, LABEL_NEW_FRAME, LABEL_NEW_PL_MEMBER, LABEL_NEW_SECTION, LABEL_NEW_SUBSCRIPTION, LABEL_NEW_TEMPLATE, LABEL_NEW_ZPAD_NAME, LABEL_NO_COLOR, LABEL_NO_ENTRY_SPECIFIC_PROPERTIES, LABEL_NO_FRAME, LABEL_NO_TEMPLATE_PREFERENCE, LABEL_NOT_AT_THIS_PL, LABEL_NOT_IN_CLIENTMODE, LABEL_OBJECT_LOCATION, LABEL_OCCURRING_SUBSCRIPTION, LABEL_OPTIONS, LABEL_ORDER_PRICE, LABEL_OWN_CONTENTS_ONLY, LABEL_OWN_SECTIONS, LABEL_OWNER_VERSION, LABEL_PASSWORD, LABEL_PASSWORD_ERROR, LABEL_PL_MEMBERS, LABEL_PLUS_ASSOCIATES, LABEL_PRICE, LABEL_PRICE_PER_ITEM, LABEL_PRO_VERSION, LABEL_RECURSIVE_SUBSCRIPTION, LABEL_RED, LABEL_REPEAT_1, LABEL_REPEAT_2, LABEL_REPEAT_3, LABEL_REQUIRED, LABEL_RGB, LABEL_SELECT_ZPAD, LABEL_SELECTED_ZPAD, LABEL_SHARED_SUBSCRIPTION, LABEL_SHOWING_RESULT, LABEL_STARTPOINT, LABEL_SUBSCRIPTIONS, LABEL_SYSTEM_SUBSCRIPTIONS, LABEL_THIS_IS_HTML, LABEL_THIS_ZPAD, LABEL_TMPL_DESCRIPTOR, LABEL_TMPL_ID, LABEL_TMPL_LOOP, LABEL_TMPL_NOT_AVAILABLE, LABEL_TMPL_STUBCHARS, LABEL_TODAY, LABEL_TOPDOWN_SUBSCRIPTION, LABEL_TOTAL_PRICE, LABEL_TRANSLATION_URL, LABEL_UNCLASSIFIED, LABEL_UP_TO_USER, LABEL_USE_RANGE, LABEL_USER_NAME, LABEL_VOLUME_DISCOUNT, LABEL_WEEKLY, LABEL_WIDTH, LABEL_YEAR, LABEL_YEARLY, MARCH, MAY, MONDAY, MORE, NO_CONTENT_IN_PAGE, NOVEMBER, OCTOBER, PM, PRESSED_DATE_POPUP, PRESSED_EDIT_POPUP, PRESSED_FIND_POPUP, PRESSED_META_POPUP, PRESSED_PERSONALIZE_POPUP, PRESSED_PRIVL_POPUP, PRESSED_SECTION_POPUP, PRESSED_TOOLS_POPUP, QUESTION_ENTRY_TO_CLIPBOARD, QUESTION_OVERWRITE_BACKUP, QUESTION_REPLACE_WITH_BACKUP, QUESTION_SELECT_ADVANCED_VERSION, REMOVE, SATURDAY, SAVING_CONTENT, SEARCH_FOR_MANUAL, SEARCH_FOR_PRIVACY_LEVEL, SEARCH_FOR_PROVIDE_PL, SEARCH_FOR_RE_EXPORT, SEARCH_FOR_RE_MANUAL, SEARCH_FOR_SUBSCRIPTION, SEARCH_FOR_TIME, SEARCH_FOR_TYPE, SEPTEMBER, SHOULD_SYNC, SUNDAY, TEMPLATE_NOT_AVAILABLE, THURSDAY, TITLE_ADD_ALIAS, TITLE_ADD_APPLET, TITLE_ADD_EMBED, TITLE_ADD_HTML, TITLE_ADD_IMAGE, TITLE_ADD_IMPORT, TITLE_ADD_OBJECT, TITLE_ADD_TEXT, TITLE_ADD_TMPLD, TITLE_ADVANCED_ZPAD, TITLE_CHANGE_COVER, TITLE_CLABEL_DEFINITIONS, TITLE_CLABEL_SELECTION, TITLE_COPY_TO, TITLE_COVER_OPTIONS, TITLE_COVER_SECTIONS, TITLE_DATE_OFFSET, TITLE_DATE_SECTIONS, TITLE_DATE_SPEC, TITLE_DESTINATION, TITLE_EDIT_CATEGORIES, TITLE_EDIT_PRIVACY_GROUPS, TITLE_EDIT_SHEET, TITLE_ENTRY_ATTRIBS, TITLE_ENTRY_EXPIRATION, TITLE_ENTRY_INSPIRATION, TITLE_ENTRY_PARAMS, TITLE_ENTRY_PROPS, TITLE_EXPIRED_HANDLING, TITLE_EXTERNAL_SECTIONS, TITLE_FIND_ENTRY, TITLE_FIRST_SECTION, TITLE_IDENTIFY_YOURSELF, TITLE_INSTANT_COVER, TITLE_LAST_SECTION, TITLE_LOGIN_DIALOG, TITLE_MANIPULATE_SECTION, TITLE_MOVE_ENTRY, TITLE_MOVE_TO, TITLE_NAVIGATOR, TITLE_PERSONALIZE_SHEET, TITLE_PL_GROUPS, TITLE_REMOVE_ALIAS, TITLE_REMOVE_FILE, TITLE_REMOVE_IMAGE, TITLE_SELECT_DATE, TITLE_SELECT_PL, TITLE_SELECT_SECTION, TITLE_SELECT_TMPL, TITLE_SET_CLABEL_IMAGES, TITLE_SET_COLOR, TITLE_SET_COLORS, TITLE_SET_FRAME, TITLE_SET_HTML, TITLE_SET_PL, TITLE_START_SECTION, TITLE_STATISTICS, TITLE_SUBSCRIPTIONS, TITLE_TEMPLATE_PREFERENCE, TITLE_TOOLS_SHEET, TITLE_TRANSFER, TITLE_UPLOAD_FILE, TITLE_USER_SECTIONS, TO, TUESDAY, WEDNESDAY, ZPAD
 
Constructor Summary
WDate(int year, int month, int date)
          Creates a new WDate.
WDate(String dateString)
          Creates a new WDate for the date indicated by 'dateString'.
 
Method Summary
protected  void _normalizeAndSetDaysPast()
          Calculate the number of days past.
 Object clone()
          Construct a new WDate, equal to this.
 int compareTo(Object other)
          Compare this WDate to another WDate.
static int daysInMonth(int year, int month)
           
protected static int daysInYearsPast(int yearsPast)
           
 boolean equals(Object other)
           
 int getDayOfWeek()
           
static String getDayOfWeekName(int dayOfWeek)
          Get the name of the nth day of the week.
static String getMonthName(int month)
          Get the name of the nth month.
 int getWeekNumber(int type)
          Calculates the date's week number.
 int hashCode()
           
static boolean isLeapYear(int year)
          Checks if the specified year is a leap year.
static boolean isLegalDate(int year, int month, int date)
          Check whether a specific date is a legal date.
static boolean isLegalDate(String dateString)
           
static WDate today()
          This function saves CPU cycles and garbage collection cycles.
static String todayString()
           
 String toString()
          Get a string representation of this date.
 String toUserString(boolean full)
          Get a descriptive representation of this date.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

I18N_TODAY_STRING

public static String I18N_TODAY_STRING

MIN_YEAR

public static final int MIN_YEAR
See Also:
Constant Field Values

MAX_YEAR

public static final int MAX_YEAR
See Also:
Constant Field Values

_daysPast

protected int _daysPast
The number of complete days since Monday January 1st, 1 AD.


year

public int year
The year (e.g. 2002) -- READ-ONLY


month

public int month
The month (between 1 and 12) -- READ-ONLY


date

public int date
The day of the month (between 1 and 31) -- READ-ONLY


monthDefaultDays

protected static int[] monthDefaultDays
The default number of days in each month of the year.


monthNames

protected static int[] monthNames
The "names" of each month.

See Also:
getMonthName(int)

dayOfWeekNames

protected static int[] dayOfWeekNames
The "names" of the days of the week.

See Also:
getDayOfWeekName(int)

_today

protected static WDate _today

_todayhours

protected static long _todayhours

_toString

protected String _toString
A WDate is a fixed entity. Therefore we can cache its toString result for efficiency.

Constructor Detail

WDate

public WDate(int year,
             int month,
             int date)
Creates a new WDate. Values that are too low or too high will be adapted in such a way that the resulting WDate is a legal date (e.g. "December 32, 1998" becomes "January 1, 1999").

Parameters:
year - the year (between MIN_YEAR and MAX_YEAR).
month - the month (between 1 and 12).
date - the day (between 1 and the number of days in month).
See Also:
isLegalDate(int, int, int)

WDate

public WDate(String dateString)
Creates a new WDate for the date indicated by 'dateString'.

Parameters:
dateString - @see isLegalDate(String)
Method Detail

todayString

public static String todayString()

today

public static WDate today()
This function saves CPU cycles and garbage collection cycles.


getWeekNumber

public int getWeekNumber(int type)
Calculates the date's week number. Note: the way the calendar is drawn corresponds to type 1 and 2 only.

Parameters:
type - One of 1, 2, 3, 4. If 1: Week number 1 is defined as the first full week, first day-of-week is sunday. If 2: Week number 1 is defined by the presence of Januari 1, first day-of-week is sunday. If 3: Week number 1 is defined as the first full week, first day-of-week is monday. If 4: Week number 1 is defined by the presence of Januari 1, first day-of-week is monday.

isLegalDate

public static boolean isLegalDate(int year,
                                  int month,
                                  int date)
Check whether a specific date is a legal date. For legal dates the 'year' should be between MIN_YEAR and MAX_YEAR, 'month' should be between 1 and 12 and 'date' should be between 1 and the number of days in the specified month.

Parameters:
year - the year to check
month - the month to check
date - the day of the month to check
Returns:
true if the date is a legal date.

isLegalDate

public static boolean isLegalDate(String dateString)
Parameters:
dateString - a String of the form "YYYYMMDD" or "YYYYMMDD+N"or "YYYYMMDD-N" YYYY is a year between MIN_YEAR and MAX_YEAR MM is a month between 01 and 12 DD is a date between 01 and the number of days in month MM or "today" or "today+N" or "today-N" And N is an positive integer.
Returns:
true if dateString can succesfully be used to create or set a WDate.
See Also:
isLegalDate(int, int, int)

clone

public Object clone()
Construct a new WDate, equal to this.

Overrides:
clone in class Object

getDayOfWeek

public int getDayOfWeek()
Returns:
the day of the week represented by this WDate 0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday

The current implementation does not return the correct day of the week for dates before September 14, 1752 AD.


toUserString

public String toUserString(boolean full)
Get a descriptive representation of this date. As an example, this method has been Localized further than a simple string2string localization.

Parameters:
full - affects the style of the string. true for a longer representation (Februari 4, 1998), false for a shorter one (Feb 4, 1998).
Returns:
a representation of this date that is readible to users.

toString

public String toString()
Get a string representation of this date.

Overrides:
toString in class Object
Returns:
a string of the form 'YearMMDD'.

compareTo

public int compareTo(Object other)
Compare this WDate to another WDate.

Specified by:
compareTo in interface Comparable
Parameters:
other - the other WDate.
Returns:
the number of days that this date is ahead of 'other' (e.g. if 'this' is "July 22th, 1998" and 'other' is "July 12th, 1998" the result will be 10).

equals

public boolean equals(Object other)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

_normalizeAndSetDaysPast

protected void _normalizeAndSetDaysPast()
Calculate the number of days past.


isLeapYear

public static boolean isLeapYear(int year)
Checks if the specified year is a leap year.

Parameters:
year - the year to check.
Returns:
true if 'year' is a leap year, false otherwise.

daysInMonth

public static int daysInMonth(int year,
                              int month)
Parameters:
a - month of the year (1-12)
Returns:
the number of days in the specified month in the current year. Note that this method takes leap years into account.

daysInYearsPast

protected static int daysInYearsPast(int yearsPast)
Parameters:
yearPast - the number of years since 1 AD.
Returns:
the number of days in yearsPast

getMonthName

public static String getMonthName(int month)
Get the name of the nth month.

Parameters:
month - the number of the month (between 1 and 12).
Returns:
the name of the month.
Throws:
ArrayIndexOutOfBoundsException - if 'month' was not between 1 and 12.

getDayOfWeekName

public static String getDayOfWeekName(int dayOfWeek)
Get the name of the nth day of the week.

Parameters:
dayOfWeek - the number of the day (between 0 and 6, 0 is Sunday).
Returns:
the name of the day.
Throws:
ArrayIndexOutOfBoundsException - if 'dayOfWeek' was not between 0 and 6.


Copyright © 1997-2008 Aduna. All Rights Reserved.