This package implements Date/Time manipulations, arithmetics and formatting in an easy to use manner for Java and Waba (Java for small devices like PDAs). This package was created for various reasons, the most important ones:

- Practically every computer system and/or programming language has a different type of Date and Time implementation,
- the range of Dates seems to be sometimes dependent on the implementor,
- to manipulate (set and get) Date and Time fields is usually cumbersome and not standardized by any means (e.g. 'first Monday in September', 'last working day of the year', 'Easter Sunday, Good Friday according to the Gregorian/Julian calendar', etc.),
- to do primitive arithmetics like subtracting one Date (and/orTime) from the other, or adding/subtracting milliseconds or whole days to/from a Date (and/or Time),
- neither Java 1.3 nor Waba have Date and Time classes implemented, which would be easy to use for the above mentioned purposes (SuperWaba 1.2x Date even limits the range of Dates such that dates earlier than 1983-01-01 are not possible!),
- Java/Waba need a sophisticated, but simple/easy to use and serializable Date/Time package!
  (Being also capable of dealing with Julian and Gregorian calendar issues. Today, all the world uses the Gregorian calendar for civil purposes, but switched to it at various dates in the past.)

The datergf package for Java and Waba follows the ideas of "datergf.cmd", a little date manipulation/arithmetic function package written for the scripting language Rexx, which is available in the form of commercial and (opensourced) free interpreters for practically every operating system in the world. Its syntax is simple, hence easy to learn and nicely maintainable:

- In the meantime a fully Object oriented version (with Smalltalk's object model, enhanced with multiple inheritance) has been created by IBM: Object Rexx. It's free for Linux and OS/2, available for AIX and Windows 97/NT/2000/ME/XP, allowing easy access to OLE/ActiveX-automation as well as to the WSH ('Windows Scripting Host').

- IBM has handed over the source-code of Object REXX to the non-profit special interest group (SIG) Rexx Language Association (RexxLA). Since April 2005 the "Open Object Rexx (ooRexx)" has been made available for multiple platforms (most notably the Linux and the Windows platforms) for free.

Acknowledgements:

- Mike Cowlishaw, an IBM fellow for creating the Rexx language which made it fun to devise the original 'datergf' package.

- Toby Thurston, who devised an impressive 'cal'-package for the freely available x2-editors (by Blair W. Thompson) available for practically all operating systems (even with Java syntax language support) and having Rexx as its macro language.
  It was this package's MJD and DJM algorithms which I used originally for creating the Java/Waba version.

- Claus Tondering for his incredible comprehensive and useful information on calendars. He is the author of "Frequently Asked Questions about Calendars" which I found for the first time on 2001-03-06 only (truly wished, I had seen this five years ago)! This FAQ documents excellent algorithms which are integer based and therefore ideally suited for Waba.
  The following methods directly implement these terrific algorithms:

  - {@link org.oorexx.datergf.DateRGF#jdn2date(int jdn, DateRGF aDate, int flag)},
  - {@link org.oorexx.datergf.DateRGF#date2jdn(int year, int month, int day, int flag)},
  - {@link org.oorexx.datergf.DateRGF#easter(int year, int flag)}.

  Please look up this excellent and authorative source of information about calendars, to learn who originally devised these algorithms and who else has to be credited with them.

Rony G. Flatscher, Vienna (Austria/Europe), 2001-04-07, 2005-12-28

{This package was developed while working temporarily (from April 2000 through April 2001) at the University of Essen (Germany), starting out from the Vienna University of Economics and Business Administration (a.k.a. "WU" - Wirtschafts-Universität Wien)). This was taken as an opportunity to learn about Java and Waba.

License:

    ------------------------ Apache Version 2.0 license -------------------------
          Copyright (C) 2001-2005 Rony G. Flatscher

          Licensed under the Apache License, Version 2.0 (the "License");
          you may not use this file except in compliance with the License.
          You may obtain a copy of the License at

              http://www.apache.org/licenses/LICENSE-2.0

          Unless required by applicable law or agreed to in writing, software
          distributed under the License is distributed on an "AS IS" BASIS,
          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
          See the License for the specific language governing permissions and
          limitations under the License.
       -----------------------------------------------------------------------------