@DATABASE "DateLib.guide" @AUTHOR "Dipl.-Inform. Kai Hofmann" @(C) "Copyright © 1996-2000 Dipl.-Inform. Kai Hofmann. All rights reserved." @$VER: DateLib.guide 40.3 (06.03.2000) @WORDWRAP @INDEX "Index" @REMARK ----------------------------------------------------------------------- @NODE Main "DateLib (TM)" @KEYWORDS "Content" Table of Contents @{" Copyright " link Copyright } - Copyright information @{" Distribution " link Distribution } - Copying conditions @{" License " link License } - Legal Information @{" Trademark " link Trademark } - Trademark information @{" Support/Updates " link Updates } - How to get updates and support @{" Author " link Author } - How to reach the author @{" Description " Link Description } - What does the DateLib? @{" Requirements " Link Requirements } - Requirements for using the DateLib @{" Installation " Link Installation } - How to install the DateLib @{" Localization " Link Localization } - For catalog translators @{" Developer Info " link Developer } - Information for developers @{" History " link History } - Revision history of the DateLib @{" Todo " link Todo } - Todo list @{" Known problems " link Problems } - List of known problems @{" Technical notes " link TechnicalNotes } - Technical background @{" Acknowledgments " link Acknowledgments} - Acknowledgments @{" Please rate " link Rate } - Please rate the DateLib @{" History of the Calendar " link HistoryCalendar} - A short History of the Calendar @{" References " link References } - Background knowledge @{" Software " link Software } - Software that uses the DateLib @{" Index " link Index } - Alphabetical index If you have AmigaDOS® 2.0 or 2.1, you will have to scroll to the right in order to read the text. AmigaGuide® for these versions of AmigaDOS® is unable to wordwrap the text. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Copyright "Copyright" @KEYWORDS "Copyright" Copyright --------- This software and its documentation are copyright © 1994-2000 Dipl.-Inform. Kai Hofmann. All rights reserved! - Permission for COMMERCIAL USE is only given by an extra available commercial license that must be validated! Contact me directly for this license, because it will be individually handed out per your needs! @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Distribution "Distribution" @KEYWORDS "Distribution" Distribution ------------ Permission is hereby granted, without written agreement and without license or royalty fees, to copy and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following paragraphs appear in all copies of this software, to: - All who will distribute this software for free! - All free accessible INTERNET servers! - All Aminet® sites and CD-ROMs - Fred Fish for his great Amiga-Software-Library - The German SAAR AG PD-Library - Angela Schmidt's Meeting Pearls serie - All others who do NOT take more than US$ 3.- for one disk that includes this software! @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE License "License" @KEYWORDS "License" @{JCENTER}DateLib --- PRODUCT LICENSE AGREEMENT KH990901 FOR NON-COMMERCIAL USE ONLY THIS AGREEMENT, made as of the 27. September 1999 BY AND BETWEEN: Dipl.-Inform. Kai Hofmann Software Engineering International Arberger Heerstr. 92 28307 Bremen Germany (hereinafter referred to as "Copyright holder") AND: the party installing the DateLib (TM) on their respective computer system (hereinafter referred to as "Licensee") @TAB 7 @{JLEFT}@{LINDENT 7}@{PARI -7}§1. DEFINITIONS @{LINDENT 10}@{PARI -3}@{PAR}A. "LICENSED PRODUCT" shall be each program product listed on any supplement(s) incorporated into this Agreement including basic and related materials pertinent to said product(s), including program disks and documentation, in machine-readable and human-readable form, and any updated program or program portion or updated documentation furnished to Licensee by the Copyright holder in connection with the LICENSED PRODUCT(s). @{PAR}B. "DESIGNATED HARDWARE GROUP" shall be each computer system listed on any supplement(s) incorporated into this Agreement. @{PAR}C. "DESIGNATED SOFTWARE GROUP" shall be each computer software listed on any supplement(s) incorporated into this Agreement. Each such DESIGNATED SOFTWARE GROUP must be under the copyright of Licensee. @{PAR}D. "DESIGNATED DISTRIBUTION AREA" shall be each distribution area listed on any supplement(s) incorporated into this Agreement. @{PAR}E. "USE" means using the LICENSED PRODUCT(s) from within the DESIGNATED SOFTWARE GROUP(s) for processing, licensing to third non-commercial parties and distributing the LICENSED PRODUCT(s) as part of the DESIGNATED SOFTWARE GROUP(s) for the DESIGNATED HARDWARE GROUP(s) within the DESIGNATED DISTRIBUTION AREA(s). @{LINDENT 7}@{PARI -7}@{PAR}§2. TRADEMARKS DateLib is a trademark of Dipl.-Inform. Kai Hofmann. All other trademarked names used herein are used for the purpose of identification and for the benefit of the trademark holder. No infringement of trademarks is intended. Trademarks remain the property of the trademark holder. @{PAR}§3. TITLE The Copyright holder warrants that he has good title to the LICENSED PRODUCT(s). Full ownership rights and title to the LICENSED PRODUCT(s) shall remain with the Copyright holder. @{PAR}§4. LICENSE The Copyright holder hereby grants Licensee a non-exclusive, non-transferable license, except otherwise explicitly expressed in written permission by the Copyright holder, to integrate the LICENSED PRODUCT(s) in machine-readable form with the DESIGNATED SOFTWARE GROUP(s) and sub-license the LICENSED PRODUCT(s) within the DESIGNATED DISTRIBUTION AREA(s) in shared-library form as integral part of the DESIGNATED SOFTWARE GROUP(s) to third non-commercial parties. Licensee is not granted the right to sub-license the LICENSED PRODUCT(s) as a stand-alone product. Licensee is not granted to make the functionality, in whole or in part, of the LICENSED PRODUCT(s) directly available through its software application programming interface. The Copyright holder also grants, that third non-commercial parties who licensed the DESIGNATED SOFTWARE GROUP(s) are allowed to use the LICENSED PRODUCT(s) as part of the DESIGNATED SOFTWARE GROUP(s) within the DESIGNATED DISTRIBUTION AREA(s). In consideration for said license, Licensee shall pay the Copyright holder the one-time fee listed in the attached supplement(s). @{PAR}§5. TERM The license granted under §4 of this Agreement is granted for the life of the DESIGNATED SOFTWARE AND HARDWARE GROUP subject to §10, §12, §15 and §16. The one-time fee will not be paid back when the license terminates. @{PAR}§6. INSTALLATION Installation of the LICENSED PRODUCT(s) for usage with the DESIGNATED SOFTWARE GROUP(s) is the sole responsibility of Licensee. @{PAR}§7. PROTECTION AND SECURITY @{LINDENT 10}@{PARI -3}@{PAR}A. Licensee recognizes and agrees that each LICENSED PRODUCT: @{LINDENT 16}@{PARI -6}@{PAR}(i) is considered by the Copyright holder to be a trade secret of the Copyright holder, @{PAR}(ii) is furnished by the Copyright holder to Licensee in confidence, and @{PAR}(iii) contains proprietary and confidential information of the Copyright holder. @{LINDENT 10}@{PARI -0}@{PAR}Title to, ownership of, and all proprietary rights in each LICENSED PRODUCT and all copies thereof are reserved to and will at all times remain with the Copyright holder. The Copyright holder's placement of a copyright notice on any portion of a LICENSED PRODUCT will not be construed to mean that such portion has been published and will not derogate from any claim that such portion is a trade secret or contains proprietary and confidential information of the Copyright holder. @{PARI -3}@{PAR}B. Licensee agrees to hold each LICENSED PRODUCT in confidence at least to the same extent that it protects its own similar confidential information and to take all reasonable precautions consistent with generally accepted standards in the data processing industry to safeguard the confidentiality of each LICENSED PRODUCT. No portion of a LICENSED PRODUCT may be disclosed, furnished or otherwise made available by Licensee to any person except to those of its employees and consultants who are necessary for Licensee to USE such LICENSED PRODUCT in accordance with this Agreement. Licensee agrees to take appropriate action by instruction, agreement and otherwise with such employees and consultants to inform them of the trade secret, proprietary and confidential nature of each LICENSED PRODUCT and to obtain their compliance with the terms of this Agreement. The obligations of this subsection will survive the termination of this Agreement. @{PAR}C. Licensee shall have no obligation of confidentiality with respect to any portion of such information that: @{LINDENT 16}@{PARI -6}@{PAR}(i) was known to Licensee prior to its receipt from the Copyright holder, or @{PAR}(ii) is lawfully obtained by Licensee from a third party under no obligation of confidentiality, or @{PAR}(iii) is or becomes publicly available other than as a result of any act or failure to act of Licensee, or @{PAR}(iv) is required to be disclosed pursuant to court order. @{LINDENT 7}@{PARI -7}@{PAR}§8. COPIES All documentation provided by the Copyright holder may be reproduced by Licensee, provided that such reproduction is made solely for the internal use of and by Licensee. No portion of any LICENSED PRODUCT provided in machine-readable form may be duplicated by Licensee except for Licensee's USE in the DESIGNATED SOFTWARE AND HARDWARE GROUP(s) or for Licensee's normal security back-up purposes. Licensee shall properly reproduce on each such copy of any LICENSED PRODUCT, in whole or in part, in whatever form, all notices of the Copyright holder's patent, copyright, trademark or trade secret rights in such LICENSED PRODUCT. The original, and any copies of the LICENSED PRODUCT, in whole or in part, that are made by Licensee shall be the property of the Copyright holder. The act of copying shall not cause or be construed as causing the LICENSED PRODUCT to be in the public domain. @{PAR}§9. MODIFICATIONS BY LICENSEE The LICENSED PRODUCT(s) covered by this Agreement are licensed as shared-library. Licensee is not permitted to change, update or modify the LICENSED PRODUCT(s) in any way. Licensee is not allowed to recompile the LICENSED PRODUCT(s). @{PAR}§10. DISCONTINUANCE The Copyright holder may discontinue any license under this agreement or terminate this Agreement upon ninety (90) days written notice if Licensee fails to comply with any of the terms and conditions of this Agreement and has not corrected same within the notice period. Within thirty (30) days after the date of discontinuance of any license under this Agreement, Licensee will certify to the Copyright holder in writing that the original and all copies, in whole or in part, in any form, of the LICENSED PRODUCT and related materials have been returned to the Copyright holder or destroyed. @{PAR}§11. WARRANTY The Copyright holder does not warrant that any LICENSED PRODUCT is error-free or that its USE will be uninterrupted. Any unauthorized modification of a LICENSED PRODUCT or any failure by Licensee to implement any Updates furnished by the Copyright holder will void the Copyright holder's warranty under this Section. THE FOREGOING WARRANTY AND LlMITATIONS ARE EXCLUSIVE REMEDIES AND ARE IN LIEU OF ALL OTHER WARRANTIES EXPRESSED OR IMPLIED. @{PAR}§12. PATENT AND COPYRIGHT INDEMNITY The Copyright holder will have no liability to Licensee under any provision of this section with respect to any claim of patent or copyright infringement that is based upon the combination of any LICENSED PRODUCT with any machine, device or computer product. @{PAR}§13. LIMITATION OF LIABILITY THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDER AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH LICENSEE. SHOULD THE PROGRAM PROVE DEFECTIVE, LICENSEE ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO LICENSEE FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY LICENSEE OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE LIABILITY IS LIMITED TO THE ONE-TIME FEE PAID BY LICENSEE. @{PAR}§14. NEW RELEASES From time to time the Copyright holder may for any reason, including protection of the LICENSED PRODUCT(s), issue new releases of the LICENSED PRODUCT(s). The Copyright holder warrants that maintainance releases will be made at no additional charge to Licensee except a processing fee. For new releases adding new functionality to the LICENSED PRODUCT(s) an upgrade fee has to be paid by Licensee to the Copyright holder for the use of said new releases. Licensee shall replace the prior release of the LICENSED PRODUCT(s) with such new release within sixty (60) days of the date of its delivery. @{PAR}§15. MAINTENANCE & SUPPORT @{LINDENT 10}@{PARI -3}@{PAR}A. The Copyright holder will provide services after delivery to correct LICENSED PRODUCT defects. Defects found by Licensee will be corrected within an unknown period of time (this might include at no time) from the day the Copyright holder gets note about the defect. @{PAR}B. The Copyright holder will provide such email assistance as the Copyright holder's, in his discretion, considers reasonable to aid Licensee in the USE of the LICENSED PRODUCT. There is no warranty that Licensee's email's will be answered at any time. @{PAR}C. When Licensee suspects a defect or problem with the LICENSED PRODUCT he shall, if so requested by the Copyright holder, prepare a Software Trouble Report consisting of: @{LINDENT 15}@{PARI -5}@{PAR}(i) a short demonstration source-code written in ANSI-C. @{PAR}(ii) a written description of the problem. @{LINDENT 7}@{PARI -7}@{PAR}§16. BUSINESS TERMINATION In the event Licensee is liquidated, dissolved, or ceases to carry on business on a regular basis, the license shall be considered discontinued and Licensee shall perform the obligations required under §10. @{PAR}§17. NOTICES All notices and other communications required or permitted under this agreement shall be in writing and be deemed to have been duly given if delivered or sent by email. @{PAR}§18. ADDITIONAL TERMS Licensee agrees to name the Copyright holder of the LICENSED PRODUCT GROUP(s) within the DESIGNATED SOFTWARE GROUP(s) documentation and "About-Requester" (if any exists) in the following form: "This software contains/uses the DateLib copyright © 1994-1999 Dipl.-Inform. Kai Hofmann" Licensee agrees to place a hyperlink in the following form on his products webpage: DateLib (TM) button The word trademark named "DateLib" will be found within the LICENSED PRODUCT GROUP(s) and the related documentation. Licensee is not allowed to change or delete the trademark within this material. The Copyright holder hereby grants Licensee a non-exclusive, non-transferable license to use the word trademark named "DateLib" as well as the related gif-image on material related to the DESIGNATED SOFTWARE GROUP(s) including the software itself, it's documentation, packaging and advertisements except otherwise explicitly expressed in written permission by the Copyright holder as long as the LICENSED PRODUCT GROUP(s) are an integral part of the DESIGNATED SOFTWARE GROUP(s) and the trademark is used in a way that has no negative (side) effect(s) for the named trademark, the LICENSED PRODUCT GROUP(s) or the Copyright holder. Licensee agrees to name the LICENSED PRODUCT GROUP(s) always with the word trademark "DateLib". @{PAR}§19. JURISDICTION The place of jurisdiction shall be Hamburg/Germany. The language to be used in the juridical proceedings shall be German. @{PAR}§20. WAIVER OF BREACH No term or provision hereof shall be deemed waived and no breach excused, unless such waiver or consent shall be in writing and signed by the party claimed to have waived or consented. Any consent by any party to, or waiver of, a breach by the other, whether express or implied, shall not constitute a consent to, waiver of, or excuse for any other different or subsequent breach. @{PAR}§21. GENERAL @{PAR}§21.1 This Agreement may not be assigned by Licensee except to a parent or to a wholly owned subsidiary of Licensee or parent. Licensee will give the Copyright holder written notice of such assignment and the assignment shall be effective upon receipt by the Copyright holder of the written notification by Assignee of the acceptance of the obligations of this Agreement. @{PAR}§21.2 This is the entire Agreement between the parties related to this subject. This Agreement can only be modified by a written agreement duly signed by persons authorized to sign agreements on behalf of Licensee and the Copyright holder. @{PAR}§21.3 Variance from the terms and conditions of this Agreement in any purchase order or other written notification issued by either party will be of no effect. @{PAR}§21.4 No action, regardless of form, arising out of or in connection with this Agreement may be brought by either party more than two years after the cause of action has arisen or, in the case of non-payment, more than two years from the date of the last payment. @{PAR}§21.5 Neither party shall be responsible for delays, or failures in performance resulting from acts beyond the control of such party. Such acts shall include but not be limited to acts of God, strikes, lockouts, riots, acts of war, epidemics, governmental regulations imposed after the fact, fire, power failures, earthquakes or other disasters. @{PAR}§21.6 Headings used in this Agreement are for reference purposes only and shall not be deemed part of this Agreement. @{PAR}§21.7 If any term or provision of this Agreement shall be found to be illegal, invalid or unenforceable then, notwithstanding, this Agreement shall remain in full force and effect and such term or provision shall be deemed stricken. @{PAR}§21.8 All executed copies of this Agreement are deemed to be originals. @{PAR}§21.9 This Agreement shall be governed by and construed in accordance with the laws of Germany. @{PAR}§21.10 This Agreement shall become effective after Licensee has installed the LICENSED PRODUCT(s) on his/her DESIGNATED HARDWARE GROUP(s). @{PAR}SUPPLEMENTS attached hereto form an integral part of this Agreement. @{PAR}END OF AGREEMENT @{JCENTER} -------------------------------------------------- SUPPLEMENT TO PRODUCT LICENSE AGREEMENT KH981102 BETWEEN Dipl.-Inform. Kai Hofmann Software Engineering International Arberger Heerstr. 92 28307 Bremen Germany (hereinafter referred to as "Copyright holder") AND the party installing the DateLib (TM) on their respective computer system (hereinafter referred to as "Licensee") @{JLEFT} @{PAR}1. TRADEMARKS All trademarked names used herein are used for the purpose of identification and for the benefit of the trademark holder. No infringement of trademarks is intended. Trademarks remain the property of the trademark holder. @{PAR}2. FACILITY REQUIREMENTS The LICENSED PRODUCT(s) operates on Amiga® computers based on Motorola 680x0 microprocessors. @{PAR}3. DELIVERABLES One archiv including the DateLib shared-library, interfaces for different programming languages as well as the related Autodocs. @{PAR}4. DESIGNATED HARDWARE GROUP SYSTEM NAME(S): @{LINDENT 9}@{PARI -2}@{PAR}- Amiga® computers based on Motorola 680x0 microprocessors @{LINDENT 7}@{PARI -7}@{PAR}5. DESIGNATED SOFTWARE GROUP SOFTWARE NAME(S): @{LINDENT 9}@{PARI -2}@{PAR}- Every non-commercial Amiga software being under the copyright of Licensee that is for non-commercial usage only. @{LINDENT 7}@{PARI -7}@{PAR}6. DESIGNATED DISTRIBUTION AREA DISTRIBUTION AREA NAME(S): @{LINDENT 9}@{PARI -2}@{PAR}- Planet earth @{LINDENT 7}@{PARI -7}@{PAR}7. LICENSED PRODUCT DESCRIPTION The DateLib (version 33.310) is an Amiga shared-library developed for low level date and time calculations. All functions are documented via Autodocs. For date calculations the following features are available: @{LINDENT 9}@{PARI -2}@{PAR}- Support for six different date/time-systems: Julian calendar, Gregorian calendar, extension of the Gregorian calendar after N. Heis for a historical correct date range from the year 8 to the year 8000 (minimum), Julian Date, Modified Julian Date, Scaliger years. @{PAR}- Support of 21 languages (English, German, French, Spanish, Portuguese, Danish, Italian, Dutch, Norwegian, Swedish, Polish, Finnish, Hungarian, Greek, Esperanto, Turkish, Latin, Russian, Czech, Catalonian, Serbian) for names of months, weekdays and some other date/time specific strings. @{PAR}- Handling of the Gregorian calendar reform (in October 1582 ten days were removed from the calendar). @{PAR}- Calculation of leap years. @{PAR}- Calculating the number of days for a month, a year or between two dates. @{PAR}- Calculation of the weeknumber and the weekday for a date. @{PAR}- Verification if a date is valid. @{PAR}- Calculation of the next valid date for an invalid value. @{PAR}- Calculation of Easter Sunday --- from which other holidays like Pentecost etc. will be calculated. @{PAR}- Comparison of two date values. @{PAR}- Powerful functions to handle differences between two dates (date + range = new date, date - date = range in days or in days, months and years). @{PAR}- Conversion of date values from one calendar system into all others. @{PAR}- Calculation of the age of the moon (within a month) and of the moonphase (new moon, full moon, quarter moon, three quarter moon). @{PAR}- A week can start with any day of the week (Monday---Sunday). @{PAR}- It's possible to expand two digit year values to four digits. Using the 'sliding window' technique it is possible to use this for any century. @{PAR}- Conversion of weekday/week/year into day/ month/year and reverse. @{PAR}- Very flexible formatting of a date into a string by using many formatting codes. @{PAR}- Parsing of date strings via templates or via automatic analyses of more than 40 date-string-formats. @{PAR}When calculating time, the following features are available: @{LINDENT 9}@{PARI -2}@{PAR}- Verify the validity of time. @{PAR}- Comparison of two time values. @{PAR}- Conversion of the 24 hour time-format into seconds and reverse. @{PAR}- Conversion of the 24 hour time-format into the Julian time-format and reverse. @{PAR}- Calculating the local time zone from the correct position on the earth. @{PAR}- Very flexible formatting of time (including time zone and dst) into a string via many formatting codes. @{PAR}- Parsing of time strings (including time zone and dst) via templates or via automatic analyzing. @{PAR}- Correct handling of the dst change days (summer to winter and reverse). @{PAR}- Converting a date/time pair from local to GMT and vice versa while taking daylight saving time into account. @{LINDENT 7}@{PARI -7}@{PAR}8. FEE AND METHOD OF PAYMENT There is not any one-time net fee required as long as the LICENSED PRODUCT(s) are used on the DESIGNATED HARDWARE GROUP(s) for non-commercial usage only. @{PAR}END OF SUPPLEMENT @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Trademark "Trademark" @KEYWORDS "Trademarks" Trademark --------- DateLib is a registered trademark of Dipl.-Inform. Kai Hofmann Amiga, AmigaDOS, AmigaGuide and Workbench are registered trademarks of Amiga International, Inc. Aminet is a registered trademark of Stefan Ossowskis Schatztruhe GmbH SAS/C is a registered trademark of SAS Institute Inc. All other trademarked names used herein are used for the purposes of identification and for the benefit of the trademark holder. No infringement of trademarks is intended. Trademarks remain the property of the trademark holder. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Updates "Support/Updates" @KEYWORDS "Support, Updates, WWW, WEB, URL, World Wide Web" Support/Updates --------------- - Updates will be available via Aminet® - Support will be available via the @{"authors" link Author} email address and via http://www.hofmann-int.de/products/DateLib/ - The PDF Manual is available via http://www.hofmann-int.de/products/DateLib/man.shtml.en @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Author "Author" @KEYWORDS "Author, EMail, WWW, WEB, Address, Phone, IRC, World Wide Web, Kai Hofmann" Author ------ Dipl.-Inform. Kai Hofmann Hofmann Software Engineering International Arberger Heerstraße 92 28307 Bremen Germany Phone: (+49)-(0)421/480780 EMail: hofmann\@hofmann-int.de IRC : PowerStat\@#AmigaGer WWW : http://www.hofmann-int.de/ @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Description "Description" @KEYWORDS "Description, Features" Description ----------- A portable library that gives you low level functions for date calculations. Includes the following features: - Support for six different date/time measurement systems: Julian, Gregorian, Heis, Julian Day, Modified Julian Day, Scaliger Year (other systems will follow). - Month/Weekday and other date/time string support for 28 languages. - Support for different countries (implementation not finished!). - Calculating leap years. - Functions to calculate the days of a month or a year or between two dates. - Functions to calculate the weeknumber and the weekday. - Check the validity of a date. - Calculating Easter. - Comparing dates. - Powerful functions to handle differences between dates. - Transformations from one time measurement system to the others. - Calculating your local time zone out of your position on the earth. - Calculating the age of the moon and the moon phase. - Check the validity of a time. - Comparing times. - Transforming 24h time format into seconds and back. - Transforming 24h time format to Julian Day time format and back. - Every weekday can be the first day of the week. - Supplement two digit years to four digit years. - Formatting of date and time values into strings. - Parsing date and time values from strings via templates or powerful autoanlysation. - Converting weekday/week/year to day/month/year vice versa. - Converting a date/time pair from local to GMT and vice versa while taking daylight saving time into account. - Autodocs describing all functions of the library. - Interfaces for: C/C++, Modula II, Oberon, Amiga-E, Assembler, Cluster, Blitz Basic 2, ARexx. - Including ANSI-C test example. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Requirements "Requirements" @KEYWORDS "Requirements" Requirements ------------ - OS 1.2 @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Installation "Installation" @KEYWORDS "Installation, Install" Installation ------------ Only use the installer script! (The Installer must be in your system-path!) If you use an Installer prior to V42 you should set the LANGUAGE Tooltype to your language. Installer V42 and better automatically use your current locale. Please note that the installer-script is very special, because: - It features uninstallation - It is automated - It is very flexible - It is very intelligent (for an installer-script ;-) - It uses @{"WrapGuide" link WrapGuide} (if present) for the @{AmigaGuide} documentation if running under a pre V39 system. - It can be reused by (hopefully) many other Amiga shared libraries, because the authors of shared libraries need to only change a few things: * The #copyright variable * The #min_os_version and #min_os_revision variables * The #language variable * The P_CustomExists, P_CustomInstall and P_CustomUninstall procedures * The 'APPNAME' tooltype within the MCC-Install icon. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Localization "Localization" @KEYWORDS "Localization" Localization ------------ The DateLib supports the following languages for the moment: ISO8859-1 : English, German, French, Spanish, Portuguese, Danish, Italian, Dutch, Norwegian, Swedish, Finnish, Latin, Bosnian, Estonian ISO8859-2 : Slovenian, Slovak, Croatian ISO8859-3 : Esperanto CP1251 : Russian EUC/ISO2022-1993: Japanese Special : Serbian ? : Polish, Hungarian, Greek, Turkish, Czech, Catalonian, Persian If your language is none of these, I need a translation of the following words: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday (including the short versions: Mon, Tue, Wed, Thu, Fri, Sat, Sun) January, February, March, April, May, June, July, August, September, October, November, December (including the short versions: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec) day, month, year, week, weekday, hour, minute, second, yesterday, today, tomorrow days, months, years, weeks, weekdays, hours, minutes, seconds daily, monthly, yearly, weekly, hourly, per minute, per second The DateLib also supports the following countries for the moment: Italy, Germany, Switzerland, Denmark, Netherlands, Great Britain, USA, Sweden If you want your country to be supported, I need the exact days that where removed from the calendar by the Gregorian calendar reform. Pope Gregor XVIII removed the days 5.10.1582-14.10.1582 from the calendar, but this reform happened at different times in different countries. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Developer "Developer Information" @KEYWORDS "Developer" Information for Developers -------------------------- - Every function name as well as every datatype name starts with a prefix "date_", "time_" or "datetime_". This makes the library more portable. - For the three calendar systems (Julian, Gregorian, Heis) all functions with the same usage have the same name as well as the same parameters (in the same order). Normally you would only need to use the Gregorian or Heis version (I prefer the last one). For some functions only the initials (J, G, H) are used to identify the calendar system. - Read the Autodocs carefully for each function, some have limitations for the date range! - Read the PDF manual which can be downloaded from http://www.hofmann-int.de/products/DateLib/man.shtml.en - JD means Julian Day (Date) calendar system. - MJD means the historical(!) Modified Julian Day (Date) calendar system. - Scaliger is a special calendar system for counting years - used for JD. - The country support is not implemented as yet since this is rather complicated. - The interface of FormatDate() has been extended in version 33.324 Please report all problems with the software or its documentation! Also please let me know if and how this documentation could be improved. Are there open questions or things that are not clear? @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE History "History" @KEYWORDS "History, Releases, Past" Release history --------------- 13.04.1994 : 33.087 - First release on Aminet3 & SaarAG 707 13.08.1994 : 33.088 - Second release on Aminet4, SaarAG 793, Fred Fish & SimTel 18.12.1994 : 33.093 - Third release on Aminet 06.02.1995 : 33.100 - Fourth release on Aminet (CD 5), Amiga-PD-1 03.08.1995 : 33.158 - Fifth release on Aminet (CD 8, Set2a, Set2c), SaarAG, Fred Fish & SimTel 12.12.1997 : 33.286 - Sixth release on Aminet 22.12.1997 : 33.288 - Seventh release on Aminet 26.12.1997 : 33.290 - Eigth release on Aminet 29.01.1998 : 33.297 - Ninth release on Aminet * General code optimizations * Autodocs fixed * Extended HSYearToJD() implementation * Changed JYearToScaliger() implementation * Added JulianDiffDateRange(), GregorianDiffDateRange(), HeisDiffDateRange(), JulianRangeDiff(), GregorianRangeDiff(), HeisRangeDiff() * Declared JulianDiffDate(), GregorianDiffDate() and HeisDiffDate() as OBSOLETE * Renamed date_Calendar to date_Calendars * Added two countries: USA and Sweden 21.04.1998 : 33.301 - Tenth release on Aminet * Added LocalToGMT() and GMTToLocal() * Fixed ARexx var length bug * Exchanged BOOL with bool, TRUE with true and FALSE with false to fit the C++ ISO standard. 28.10.1999 : 33.310 - Eleventh release on Aminet * Fixed bug in Latin translation that might result in a crash when using ParseDate() * Added multi calendar functions * Added debugging code * New EMail address * New WEB-Site * New License * Added hint about the PDF manual 17.04.2000 : 33.324 - Twelfth release on Aminet * Updated Czech, Portuguese, Turkish, Swedish, Spanish, Russian, Italian, Finnish, Portuguese, Serbian and Esperanto translations * Added Slovenian, Slovak, Croatian, Bosnian, Estonian, Persian and Japanese translations * Internal changes and optimizations for future expansions * Bug fixes in ParseDate() and DateLib-Demo.c * Changed ParseDate() and FormatDate() %j to "day of the year" for compatibility reasons * Added two banners * Changed FormatDate() interface !!! @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Todo "Todo" @KEYWORDS "Todo, Future" Todo ---- - Country daylight saving support - Country dependend for 1582 - Locale.library catalogs - Country strings for TextEngine - DATE/ECHO like shell command - EVAL like shell command - TimeZoneDiff - A function to compare date/time of different time zones! - More intelligent var/fix length date/time parser format detection - Rising/setting of moon and sun - Other calendars, like the Islamic and the Jewish @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Problems "Known problems" @KEYWORDS "Problems, Bugs" Known problems -------------- - See Autodocs @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE TechnicalNotes "Technical notes" Technical notes --------------- A tropical year is 365.2422 days! / 365d, 5h, 48min, 46sec A moon month is 29.53059 days! / 29d, 12h, 44min, 2.9 sec A moon phase is 7.38265 days! The calculations are historical and NOT astronomical! Here are the offsets for days that depend on Easter: Carnival Monday : Easter Sunday - 48 Mardi Gras : Easter Sunday - 47 Ash Wednesday : Easter Sunday - 46 Palm Sunday : Easter Sunday - 7 Maundy Thursday : Easter Sunday - 3 Good Friday : Easter Sunday - 2 Easter Monday : Easter Sunday + 1 Ascension of Christ : Easter Sunday + 39 Whitsunday : Easter Sunday + 49 Whitmonday : Easter Sunday + 50 Feast of Corpus Christi : Easter Sunday + 60 Rules for other days: New Year : 01.01. Epiphany : 06.01. Valentine : 14.02. Begin of daylight savings time in Germany : Last Sunday in March May first observed : 01.05. Day of Europeans : 05.05. Mother's day : Second Sunday in May Grandhawk in Germany : 27.06. Peter and Paul : 29.06. Marie's ascention : 15.08. German day of unity : 03.10. Thanksgiving in Germany : First Sunday in October End of daylight savings time in Germany : Last Sunday in October Reformationday : 31.10. All Saints Day : 01.11. Memorial Day : 4. Advent -35 Penitential and Prayer Day : 4. Advent -32 Death Sunday : 4. Advent -28 1. Advent : 4. Advent -21 2. Advent : 4. Advent -14 3. Advent : 4. Advent -7 4. Advent : Sunday <= Christmas Eve Christmas Eve : 24.12. Christmas Day : 25.12. Second Christmas Day : 26.12. New Years Eve : 31.12. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Acknowledgments "Acknowledgments" @KEYWORDS "Acknowledgments, Greetings" Acknowledgments are going to the following people: Rita Reichl - For correcting my English, for the three magic books, for helping in general and especially for being my inspiration. Daniel Amor - For his hint about the Oberon-2 SHORT command Jim Rickman - For reporting a bug Christian Schaefer - For spending time on this lib with his Borland C++ 4.5 compiler Heinz Zemanek - For his great book Jacco van Weert & Frans Slothouber - For the 'Robodoc' utility Martin Huttenloher - For @{"MagicWB" link MWBReadMe} Udo Schuermann - For @{"WrapGuide" link WrapGuide} Stefan Kost - For ag2txt Jürgen Kohrmeyer - For the rexxtricks.library James Cooper, Steve Krueger, Doug Walker - For supporting SAS/C® after SAS suspended support. Heinz Wrobel - For reopening my eyes Mathew Wilson - For his text about the calendar Sandor Pogacsas - For the translation into Hungarian Pantelis Kopelias - For the translation into Greek Holger Duerer - For the translation into Esperanto Berend Ozceri - For the translation into Turkish Christian Hujer - For the translation into Latin Eugene Stepanoff - For the translation into Russian Vit Sindlar - For the translation into Czech Pedro Kuis Mieza - For the translation into Catalan Ljubomir Jankovic - For the translation into Serbian Anders Bakkevold - For additional translations into Norwegian Paolo Menichetti - For additional translations into Italian Ole Friis - For additional translations into Danish Nuno Namora - For additional translations into Portuguese Pedro Luis Mieza - For additional translations into Spanish Francis Labrie - For additional translations into French Eric Krieger - For additional translations into Dutch Marcus Alanen - For additional translations into Finnish Marcin Orlowski - For additional translations into Polish Thomas Andersson - For additional translations into Swedish Patrick Delaere - For fixing the Dutch translation & for bug reports Erwan Fouret - For his help with the BB2 interface Henning Thielemann - For his help with the Cluster interface This software was translated with the help of ATO, the Amiga Translators` Organization. ATO is a non-profit organization that translates for the Amiga community. The following members were involved: Translation and proof-reading: Bosnian : Alen Hadzihasanovic Croatian : Mladen Ilisinovic Estonian : Vassili Smirnov Japanese : Shinji Miyoshi Persian : Paymaan Jafari Taayemeh Russian : Sergeev Oleg Slovak : Radoslav Hodnicak Slovenian : Damir Arh Proof-reading: Esperanto : Antonio Noguera Finnish : Samppa Rönkä Italian : Marco De Vitis Portuguese-euro : Alfredo Martins Português-brasil : Gustavo Sarmento Serbian : Andrija Antonijevic Spanish : Javier de las Rivas Swedish : Kristoffer Larsson Turkish : Eser GUVEN Amiga Translators' Organization - http://ato.vapor.com/ato/ mail: ato-info@ato.vapor.com @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Rate "Please rate" @KEYWORDS "Aminet, rate, charts" Please rate ----------- Please rate DateLib and Lib-Install. To do so, send an email to aminet-server\@wuarchive.wustl.edu with the following content: RATE dev/misc/Lib-Install.lha RATE util/libs/DateLib.lha where is a mark from 0..10 with 10 being the best. You can rate several programs in one mail. Thank you! @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE HistoryCalendar "A short History of the Calendar" @KEYWORDS ""Calendar, History A short History of the Calendar ------------------------------- Copyright Mathew Wilson. All rights reserved (included with Mathew's permission)! The calendar is a very big part of our everyday life yet we often forget the centuries of patient study along with trial and error that went into creating the thing that now controls our lives. This method of recording time, that started with the Babylonians, has gone through many changes to evolve into the modern day calendar we use today. The first calendars were based on the movements of the moon. Later on this was proved to be inaccurate as man learned that the Earth travelled around it's star. The Sun became the base for time recording as the lunar year did not match the cycle of the Earth around the Sun. Although there are still some calendars in use today that are based on the Moon cycle. These ones are usually well entrenched in tradition and would be difficult to change without affecting the culture; especially if it involves religion. The current Jewish calendar is still based on the Moon's movements which begins with the year of creation, set at 3760 BC. The Islamic calendar is also based on the Earth's meteorite impacted satellite. The Egyptians were the first to adopt the Sun as a guideline. Theirs is the long descendant of the Gregorian calendar we use today. The month became an arbitrary unit that was previously related to the cycles of the moon. The Egyptians used a 365 day year. It is thought that they first adopted this calendar in the year 4236 BC. Later on people learnt that the Earth revolved at a period of 365 and about a quarter days around the Sun. Pharaohs and other leaders made many attempts to alter their calendars to reflect this but failed either because of tradition or miscalculations from the priests that were assigned to look after the motions of the calendar. Next came the Romans. They had originally used a Moon based system that was very complicated. It's accuracy was entrusted to the `College of Pontiffs' who often misused this privilege to their own gain. By the time Julius Caesar became virtual dictator of Rome the calendar was in a mess. In 47 BC he called upon famous Greek astronomer Sosigenes to try and correct things. After suggestion by Sosigenes, Caesar decided to adopt the Solar year as the Egyptians did. He gave the year a length of 365 and a quarter days. This quarter day was with held for 4 years and then added as a 'leap year.' To honor Julius, the Senate changed the name of the month Quintilis to Julius (July). Julius also had to make corrections due to the errors in the old calendar. The problems did not end there, for after he was assassinated in 44 BC the Pontiffs in charge of the calendar decided to insert the leap every third instead of every fourth year. When Augustus Caesar came on the scene he restored the correct leap-year in 8 AD. As you may have guessed the Senate also honored this change by renaming the month Sextilis to Augustus (August). This calendar is also referred to as the Julian calendar, for obvious reasons. In 321 AD the Emperor Constantine created the seven day week discarding the old complicated system of `Calends' the Romans had developed to make reference to days within a month. As technology became available it was discovered that the real length of the Solar year is 365.242199 days, or 365 days, 5 hours, 48 minutes and 46 seconds. This meant the Julian calendar was too long by about 11 minutes. After a few centuries this soon amounted to several days. Again the calendar began drifting from the seasons. In 1582 Pope Gregory XIII commissioned the services of the mathematician Christopher Clavius and the astronomer-physician Luigi Lilio Ghiraldi to fix the error. They found the error to amount to 10 days. In October 1582 the calendar was re-adjusted to fix the error. The 4th day was followed by the 15th to loose the 10 days. This created problems for people born on the 5th but they made reference to those dates either using OS (Old Style) or NS (New Style) systems. Then the leap-year rule was changed to avoid further errors. Now any centurial year (ending in `00') was only a leap year if it was divisible by 400. Therefore 1600 was a leap year but 1700,1800 and 1900 were not. This became the `Gregorian' calendar, the one we use today. All Roman Catholic countries immediately adopted the Gregorian reform, but others were slow to follow. The English didn't start using it until 1752. The French originally followed the Gregorian way but changed in 1792 and returned to it in 1805. Japan followed in 1873, China 1912, Greece 1924 and Turkey 1927. Russia had a similar experience to France during the Bolshevik revolution but returned to it in 1940. Since then a few people have been dissatisfied with the calendar and have attempted reforms but a major change has not been affected because the entire world cannot agree on a new system. In 1923, 500 new reforms were heard at the League of Nations. Two new calendars emerged as favourites: the Thirteen Month Calendar and the World Calendar. But these did not get a majority acceptance by the nations due to conflicts with nationalistic dates of importance and the business community said it would complicate things. There were others that came close but they are too many to list. So it seems we are to keep the Gregorian calendar for a while yet. You must therefore remember that dates previous to October 15th, 1582 cannot be calculated by just going back in time a certain amount of days from today. Time is not linear in this sense because of all the changes that have been made. @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE References "References" @KEYWORDS "References, Bibliography" References ---------- English books which were consulted in creating this library: Mathematical Astronomy with a Pocket Calculator Aubrey Jones Fras Unknown (first) Edition David & Charles Newton Abbot, London 1978 ISBN 0-7153-7675-6 Astronomical Algorithms Jean Meeus Unknown Edition (I use the German second edition ;-) Willmann-Bell, Inc., Ruchmond, Virginia (USA) 1991 ISBN 0-943396-35-2 ISO 8601-1988 International Organisation for Standardization, Genf 1988 German books which were consulted in creating this library: Kleine Naturwissenschaftliche Bibliothek, Band 23 Ewige Kalender A.W. Butkewitsch & M.S. Selikson 5. Auflage Teubner, Leipzig 1974 ISBN 3-322-00393-0 Tag und Woche, Monat und Jahr: eine Kulturgeschichte des Kalenders Rudolf Wendorff Westdeutscher, Opladen 1993 ISBN 3-531-12417-X Kalender und Chronologie: Bekanntes & Unbekanntes aus der Kalenderwissenschaft Heinz Zemanek 4. Auflage Oldenbourg, München 1987 ISBN 3-486-20447-5 Meyers Handbuch über das Weltall Karl Schaifers & Gerhard Traving 5. Auflage Bibliographisches Institut, Mannheim 1973 ISBN 3-411-00940-3 Astronomische Algorithmen Jean Meeus 2. Auflage Johann Ambrosius Barth, Berlin 1994 ISBN 3-335-00400-0 Astronomie mit dem Personal Computer Oliver Montenbruck & Thomas Pfleger 2. Auflage Springer, Berlin 1994 ISBN 3-540-57701-7 Handbuch der mathematischen und technischen Chronologie Das Zeitrechnungswesen der Völker Band I F. K. Ginzel 1. Auflage J. C. Hinrichs'sche Buchhandlung, Leipzig 1906 Handbuch der mathematischen und technischen Chronologie Das Zeitrechnungswesen der Völker Band II F. K. Ginzel 1. Auflage J. C. Hinrichs'sche Buchhandlung, Leipzig 1911 Handbuch der mathematischen und technischen Chronologie Das Zeitrechnungswesen der Völker Band III F. K. Ginzel 1. Auflage J. C. Hinrichs'sche Buchhandlung, Leipzig 1914 @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Software "Software" @KEYWORDS "Software" Software -------- The following software products use the DateLib: Date : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_Date.lha http://www.hofmann-int.de/products/amiga/mui/Date.shtml DateString : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_DateString.lha http://www.hofmann-int.de/products/amiga/mui/DateString.shtml DateText : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_DateText.lha http://www.hofmann-int.de/products/amiga/mui/DateText.shtml MonthNavigator : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_MonthNavi.lha http://www.hofmann-int.de/products/MonthNavigator/MonthNavigator.shtml Time : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_Time.lha http://www.hofmann-int.de/products/amiga/mui/Time.shtml TimeString : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_TimeString.lha http://www.hofmann-int.de/products/amiga/mui/TimeString.shtml TimeText : By Dipl.-Inform. Kai Hofmann Aminet:dev/mui/MCC_TimeText.lha http://www.hofmann-int.de/products/amiga/mui/TimeText.shtml UpToDate : By Francesco Agnoli Aminet:util/time/UpToDate.lha @next Index @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE MWBReadMe "MagicWB" @PREV WrapGuide @KEYWORDS "MWB, MagicWB, Martin Huttenloher" This product is based on or uses parts of MagicWB - The Workbench Enhancer -------------------------------- Copyright © 1992-1997, Martin Huttenloher If you use and like this product you should very much consider to take a look at MagicWB, which is the authentic source of the style, colors and design elements contained in this package. It features hundreds of original icons, patterns, image-drawers, dock-brushes and some specially designed high-quality fonts to improve the comfort & legibility of your daily Workbench session. What is MagicWB? MagicWB is a full replacement for the Graphical User Interface of the Workbench and has become the standard visual interface on the Amiga. Over the last years MagicWB has received various merits and an overwhelming response from Amiga magazines and users worldwide proclaiming it "a must for all Amiga users". Even commercial applications are supporting the multi-colored look & style of MagicWB. Get yourself the latest version of MagicWB and see for yourself the wonders it can do by automatically transforming your old and dull Amiga Workbench into an impressive workstation environment that will be the envy of all PC Windows and Mac users. Update yourself to the state-of-the-art workbench standard everyone uses on the Amiga! It is also your key to enjoy the new look & feel of many applications and other MWB add-ons and extensions. MagicWB is distributed as shareware. Get yourself the latest FREE PUBLIC RELEASE of MagicWB now: It is called ---------------- MagicWB21p.lha ---------------- and can be found everywhere on Aminet (or your local BBS or public domain series). Install it and witness the instant magic it performs on your old Amiga Workbench. Also included is the latest SASG registration program with which you can order and get the full registered version of MagicWB. If you want to order directly, feel free to send DM 30.- or US$ 20.- (cash, no checks!) to Martin Huttenloher Am Hochstraess 4 D-89081 Ulm Germany You may also choose to visit the official MagicWB homepage on the world wide web. There you can find the latest news & support and even register your MagicWB online (which is much more comfortable and faster). You can even benefit from various special offers & discounts for MagicWB if you order through our website! Come and visit MagicWB at: ---------------------- http://www.sasg.com/ ---------------------- Save 20% by using the discounts on our website! Ordering online also saves you a lot of time and work! @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE WrapGuide "WrapGuide" @KEYWORDS "WrapGuide, Udo Schuermann" WrapGuide is Copyright 1994-1995 Udo Schuermann All rights reserved @NEXT MWBReadMe @ENDNODE @REMARK ----------------------------------------------------------------------- @NODE Index "Index" @TOC Main @PREV Software @KEYWORDS "Index" @{" Acknowledgments " link Acknowledgments} @{" Author " link Author} @{" Calendar History " link HistoryCalendar} @{" Copyright " link Copyright} @{" Description " link Description} @{" Developer Info " link Developer} @{" Distribution " link Distribution} @{" History " link History} @{" Installation " link Installation} @{" Known problems " link Problems} @{" License " link License} @{" Localization " link Localization} @{" MagicWB " link MWBReadMe} @{" Please rate " link Rate} @{" References " link References} @{" Requirements " link Requirements} @{" Software " link Software} @{" Support/Updates " link Updates} @{" Technical notes " link TechnicalNotes} @{" Todo " link Todo} @{" Trademark " link Trademark} @{" WrapGuide " link WrapGuide} @ENDNODE @REMARK -----------------------------------------------------------------------