home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-13 | 58.9 KB | 2,545 lines |
- TABLE OF CONTENTS
-
- Date/--background--
- Date/--history--
- Date/_DateInit
- Date/GregorianDayDiff
- Date/GregorianDayGreater
- Date/GregorianDaysAfterWeekday
- Date/GregorianDaysBeforeWeekday
- Date/GregorianDaySmaller
- Date/GregorianDiffDate
- Date/GregorianEaster
- Date/GregorianLeapYear
- Date/GregorianMonthDays
- Date/GregorianMoonAge
- Date/GregorianToJD
- Date/GregorianWeek
- Date/GregorianWeekday
- Date/GregorianYearDays
- Date/GSYearToJD
- Date/GYearToScaliger
- Date/HeisDayDiff
- Date/HeisDayGreater
- Date/HeisDaysAfterWeekday
- Date/HeisDaysBeforeWeekday
- Date/HeisDaySmaller
- Date/HeisDiffDate
- Date/HeisLeapYear
- Date/HeisMonthDays
- Date/HeisToJD
- Date/HeisWeek
- Date/HeisWeekday
- Date/HeisYearDays
- Date/HSYearToJD
- Date/HYearToScaliger
- Date/JDtoMJD
- Date/JDToTime
- Date/JSYearToJD
- Date/JulianDayDiff
- Date/JulianDayGreater
- Date/JulianDaysAfterWeekday
- Date/JulianDaysBeforeWeekday
- Date/JulianDaySmaller
- Date/JulianDiffDate
- Date/JulianLeapYear
- Date/JulianMonthDays
- Date/JulianToJD
- Date/JulianWeek
- Date/JulianWeekday
- Date/JulianYearDays
- Date/JYearToScaliger
- Date/LMT
- Date/MJDtoJD
- Date/ScaligerYearToG
- Date/ScaligerYearToH
- Date/ScaligerYearToJ
- Date/SecToTime
- Date/TimeToJD
- Date/TimeToSec
- Date/TimeZoneFactor
- Date/--background-- Date/--background--
-
- NAME
- Date -- This module was designed to help calc. calendar dates (V33)
-
- FUNCTION
- I know about the date routines in the Amiga-OS(TM), but i decided
- not to use them, because of their limited functionality and of
- the portability of this Module!
-
- 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!
-
- (german) Books who helped me 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
-
- (english) Books who helped me creating this:
- Mathematical Astronomy with a Pocket Calculator
- Aubrey Jones Fras
- unknown(first) Edition
- David & Charles Newton Abbot, London 1978
- ISBN 0-7153-7675-6
-
- COPYRIGHT
- This module is Copyright 1994 by Kai Hofmann - all rights reserved!
- For private use, Public Domain, Gift Ware, Freeware and Shareware
- you could use this module under following conditions:
- - You send me a little gift (money is very welcome :)
- For Bank Accocunt see below - but *ONLY* send in DM
- to this Bank Account!!!
- Other nice gifts: all Amiga hardware, and i am searching for a
- good old 1541 (C64 floppy)
- - You include a notice in your product, that you use this library
- and that it is Copyright by Kai Hofmann!
- If you want to redistribute this library read the following points:
- - Redistribution warranty is given to:
- Fred Fish for his great Amiga-Software-Library
- The german SAAR AG PD-Library
- The german AMOK PD-Library
- All public accessible INTERNET servers and PHONE boxes!
- All other who NOT take more than DM 5.- for one disk
- ALL other who NOT take more than DM 50.- for one CD
- For commercial use send me DM 200.-
- But if you are Apple or Microsoft you have to send (20000.- US$)
-
- DISCLAIMER
-
- 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 YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU 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 YOU 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 YOU 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.
-
- ADDITIONAL INFORMATIONS
- I have tried to make portable/usefull and i hope bugfree software
- for eternity - but this seems to be impossible (sorry!) :)
- So i hope YOU will pay a fee for this.
-
- AUTHOR
- Kai Hofmann
- Arberger Heerstraße 92
- 28307 Bremen
- Germany
- EMail: i07m@zfn.uni-bremen.de
- (no phone - i hate it!)
-
- Bank account : 1203 7503
- Account owner: Kai Hofmann
- Bank code : 290 501 01
- Bank name : Sparkasse in Bremen
-
- THANX
- Thanx are going to the following people:
- Danial Armor - For his hint about the Oberon-2 SHORT
- command
- Heinz Zemanek - For his great book
- Christian Schaefer - For spending time on this lib with his
- Borland C++ 4.0 compiler
-
- Date/--history-- Date/--history--
-
- NAME
- history -- This is the development history of the Date module
-
- VERSION
- $VER: Date 33.087 (10.04.1994)
-
- HISTORY
- 16.01.1994 - Procedures: JulianLeapYear, GregorianLeapYear &
- HeisLeapYear initiated.
- 22.01.1994 - Procedures: JulianMonthDays, GregorianMonthDays,
- HeisMonthDays, JulianYearDays, GregorianYearDays,
- HeisYearDays, JulianDayDiff, GregorianDayDiff,
- HeisDayDiff, JulianDaySmaller, GregorianDaySmaller,
- HeisDaySmaller, JulianWeekday, GregorianWeekday,
- HeisWeekday, JulianDaysBeforeWeekday,
- GregorianDaysBeforeWeekday, HeisDaysBeforeWeekday,
- JulianDaysAfterWeekday, GregorianDaysAfterWeekday,
- HeisDaysAfterWeekday JulianDiffDate, FreeDate
- initiated.
- Types: Weekdays, Date, DatePtr initiated.
- Vars of Gregorian reform initiated
- (for changing to different countries)
- 23.01.1994 - Procedures: JulianDiffDate finished,
- GregorianDiffDate, HeisDiffDate, JYearToScaliger,
- GYearToScaliger, HYearToScaliger, ScaligerYearToJ,
- ScaligerYearToG, ScaligerYearToH, JSYearToJD,
- GSYearToJD, HSYearToJD, JDtoMJD, MJDtoJD, JulianToJD,
- GregorianToJD, HeisToJD, TimeToJD, JDToTime, FreeTime
- initiated.
- Types: Time, TimePtr initiated.
- 28.01.1994 - Procedures: GregorianMoonAge, MoonMonthAge,
- GregorianEaster initiated.
- 30.01.1994 - Procedures: JulianDiffDate, GregorianDiffDate,
- HeisDiffDate, JDtoTime, GregorianEaster edited
- (changing return value from ptr to VAL variables).
- Procedures: FreeDate, FreeTime deleted.
- Types: Date, DatePtr, Time, TimePtr deleted (not
- longer needed, because of the procedure changes).
- Procedures: GregorianMoonAge, GregorianEaster changed
- year parameter from CARDINAL to INTEGER (this is more
- consistent to the rest of the library).
- Bugs removed: GregorianWeekday, HeisWeekday
- (before removing, the weekday for leapyears was
- wrong)
- Procedure: GregorianEaster finished.
- 30.01.1994 - Ported to Oberon-2
- 31.01.1994 - Compiled with Oberon-2 V3.11
- 12.02.1994 - Procedures: TimeZoneFactor, LMT, TimeToSec, SecToTime
- initiated.
- Version-String installed :)
- 12.02.1994 - Starting translation to SAS C 6.51
- Date.h translated
- 13.02.1994 - Continuation of C translation
- 17.02.1994 - New Oberon-2 Port, because yesterday Daniel Armor
- gives me a little hint about the SHORT command
- (i was not knowing about this!)
- 17.02.1994 - Little bug in Autodocs removed
- making this text as Date/--history-- autodoc
- 17.02.1994 - Continuation of C translation
- 18.02.1994 - Finished with C translation
- 19.02.1994 - C bugs removed (thanx to SAS for helping a C Lamer
- like me!), some optimizations done too.
- 19.02.1994 - Oberon-2 version compiled with V40.17 includes
- 21.02.1994 - Starting to write Modula-II testmodule
- Vars for the begining of Heis calculation initiated.
- Fixed little bugs in GregorianWeekday, HeisWeekday,
- TimeToSec, SecToTime
- Return-value of LMT changed to LONGINT!
- Converting testmodule to Oberon-2
- 22.02.1994 - Converting testmodule to C
- 23.02.1994 - I noticed, that i forgot the 3 funktions
- JulianWeek, GregorianWeek, HeisWeek
- 24.02.1994 - Initiated the 3 forgotten funktions
- 26.02.1994 - Initiating new GregorianEastern with Gauß-algorithms
- but ONLY for 1900-2099!
- 27.02.1994 - Bug fixed in JulianWeekday
- Bugs fixed in JulianDayDiff, GregorianDayDiff,
- HeisDayDiff
- JulianDayGreater, GregorianDayGreater,
- HeisDayGreater Initiated.
- 02.03.1994 - Little bug fixed in HeisDayDiff
- Bugs from 27.02. fixed in Modula-II and Oberon-2
- versions
- I found the way to extend Gregorian Easter!
- Little bug fixed in JulianWeek, GregorianWeek,
- HeisWeek (~(M2) is not !(C))
- 05.03.1994 - Some internal bugs removed
- New internal procedures GregorianSB,
- GregorianJHSB, GregorianJHStartSB!
- Extending GregorianEaster :)
- 11.03.1994 - Things from 05.03. done in Modula-II and Oberon
- 12.03.1994 - If __SASC is defined autoinitalization instead of
- _DateInit will be used!
- 13.03.1994 - After studying the SAS C Manual again i decided to
- check for __SASC_650 instead of __SASC because of
- the available of priorities!
- Setting the priority of _DateInit for
- autoinitalization to 600!
- 15.03.1994 - Making Date as library
- 16.03.1994 - Some work on the Autodocs was done
- Eleminating OldGregorianEaster by comments
- (ANSI: STOP bad standards like that there are NO
- nestedcomments possible in C!!!)
- 19.03.1994 - Some work on the Autodocs was done in the M2 Code
- 20.03.1994 - Some work on the Autodocs was done in the Oberon Code
- 22.03.1994 - In JDtoMJD, MJD to JD an L was added to the constant
- In GregorianWeekday(), HeisWeekday(),
- JulianDiffDate(), GregorianDiffDate(),
- HeisDiffDate(), JDToTime() i have inserted
- conversions (found with Borland C++ 4.0)
- 24.03.1994 - Making SunOS4.1.3, SunOS5.3(Solaris2.3) &
- RS6000 AIX3.2.? binaries with gcc
- Eliminating nested commends by inserting a space
- between / and * (i hate this ANSI C standard
- feature for commends :(
- 27.03.1994 - Adding library register assignments to the autodocs
- 03.04.1994 - Little fixes for the SAS C++ Compiler
- Little bug fixed in the M2 version of GregorianEaster
- 04.04.1994 - Adding some 'static' keywords
- 10.04.1994 - Changing from Shareware to Gift Ware ;-)
-
- Date/_DateInit Date/_DateInit
-
- NAME
- _DateInit -- Procedure to initialize this module! (V33)
-
- SYNOPSIS
- _DateInit();
-
- void _DateInit(void);
-
- FUNCTION
- Initialize this module, like the modulebody in Modula-II or Oberon-2
-
- INPUTS
- None.
-
- RESULT
- None.
-
- EXAMPLE
- ...
- _DateInit();
- ...
-
- NOTES
- This funktion is only needed/available if you not compile this with a
- SAS C Compiler (using Autoinitialization!)
- If you are not using SASC - don't forget to init this module with
- this funktion - or you get into trouble!!!
-
- BUGS
- unknown.
-
- SEE ALSO
-
-
- Date/GregorianDayDiff Date/GregorianDayDiff
-
- NAME
- GregorianDayDiff -- Calculates the days between 2 dates. (V33)
-
- SYNOPSIS
- days = GregorianDayDiff(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- long GregorianDayDiff(const unsigned short day1,
- unsigned short month1, int year1, const unsigned short day2,
- unsigned short month2, int year2);
-
- FUNCTION
- GregorianDayDiff gives you back the number of days between
- two specified dates.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- days - The number of days between the two dates
- (positive if date1 <= date2).
-
- EXAMPLE
- ...
- days = GregorianDayDiff(18,9,1970,22,1,1994);
- printf("Age of Kai Hofmann in days : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 02.3200!
-
- BUGS
- If you use on of the dates 5.10.1582 to 14.10.1582 you will become
- wrong output, because this days don't exist!
-
- SEE ALSO
- GregorianLeapYear(),GregorianMonthDays(),GregorianYearDays(),
- JulianDayDiff(),HeisDayDiff()
-
- Date/GregorianDayGreater Date/GregorianDayGreater
-
- NAME
- GregorianDayGreater -- Checks if date1 is greater than date2. (V33)
-
- SYNOPSIS
- greater = GregorianDayGreater(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- bool GregorianDayGreater(const unsigned short day1,
- const unsigned short month1, const int year1,
- const unsigned short day2, const unsigned short month2,
- const int year2);
-
- FUNCTION
- GregorianDayGreater test if date1 is greater than date2.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- greater - This is TRUE is date1 > date2 otherwise it's FALSE.
-
- EXAMPLE
- ...
- if (GregorianDayGreater(18,9,1970,22,1,1994))
- printf("<\n");
- else
- printf(">=\n");
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 3200!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianDayGreater(),HeisDayGreater()
-
- Date/GregorianDaysAfterWeekday Date/GregorianDaysAfterWeekday
-
- NAME
- GregorianDaysAfterWeekday -- Returns the diff to wday after. (V33)
-
- SYNOPSIS
- days = GregorianDaysAfterWeekday(day,month,year,weekday);
- d0 d0 d1 d2 d3
-
- unsigned short GregorianDaysAfterWeekday(const unsigned short day,
- const unsigned short month, const int year,
- const Weekdays weekday);
-
- FUNCTION
- Returns the days to the weekday after the specified date.
- So if you specifie the 22.1.1994 (saturday) and thursday
- you get back 5!
- If you specifie the 22.1.1994 and saturday you became back 0
- (the same day)!
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- weekday - weekday to search for building difference
-
- RESULT
- days - The days after to the searched weekday.
-
- EXAMPLE
- ...
- days = GregorianDaysAfterWeekday(22,1,1994,thursday);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 3200!
-
- BUGS
- See GregorianWeekday()!
-
- SEE ALSO
- GregorianWeekday(),JulianDaysAfterWeekday(),HeisDaysAfterWeekday()
-
- Date/GregorianDaysBeforeWeekday Date/GregorianDaysBeforeWeekday
-
- NAME
- GregorianDaysBeforeWeekday -- Returns the diff to wday before. (V33)
-
- SYNOPSIS
- days = GregorianDaysBeforeWeekday(day,month,year,weekday);
- d0 d0 d1 d2 d3
-
- unsigned short GregorianDaysBeforeWeekday(const unsigned short day,
- const unsigned short month, const int year,
- const Weekdays weekday);
-
- FUNCTION
- Returns the days to the weekday before the specified date.
- So if you specifie the 22.1.1994 (saturday) and thursday
- you get back 2!
- If you specifie the 22.1.1994 and saturday you became back 0
- (the same day)!
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- weekday - weekday to search for building difference
-
- RESULT
- days - The days back to the searched weekday (1-7)
- If you get back 8 an error occurs!
-
- EXAMPLE
- ...
- days = GregorianDaysBeforeWeekday(22,1,1994,thursday);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 3200!
-
- BUGS
- See GregorianWeekday()!
-
- SEE ALSO
- GregorianWeekday(),JulianDaysBeforeWeekday(),HeisDaysBeforeWeekday()
-
- Date/GregorianDaySmaller Date/GregorianDaySmaller
-
- NAME
- GregorianDaySmaller -- Checks if date1 is smaller than date2. (V33)
-
- SYNOPSIS
- smaller = GregorianDaySmaller(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- bool GregorianDaySmaller(const unsigned short day1,
- const unsigned short month1, const int year1,
- const unsigned short day2, const unsigned short month2,
- const int year2);
-
- FUNCTION
- GregorianDaySmaller test if date1 is smaller than date2.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- smaller - This is TRUE is date1 < date2 otherwise it's FALSE.
-
- EXAMPLE
- ...
- if (GregorianDaySmaller(18,9,1970,22,1,1994))
- printf("<\n");
- else
- printf(">=\n");
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 3200!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianDaySmaller(),HeisDaySmaller()
-
- Date/GregorianDiffDate Date/GregorianDiffDate
-
- NAME
- GregorianDiffDate -- Returns the diff date to another date. (V33)
-
- SYNOPSIS
- GregorianDiffDate(day,month,year,diffdays,dday,dmonth,dyear);
- d0 d1 d2 d3 a0 a1 a2
-
- void GregorianDiffDate(const unsigned short day,
- const unsigned short month, const int year, int days,
- unsigned short *dday, unsigned short *dmonth, int *dyear);
-
- FUNCTION
- Returns the date wich lies diffdays before/after the specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- diffdays - difference to the date in days
-
- RESULT
- dday - Destination day
- dmonth - Destination month
- dyear - Destination year
-
- EXAMPLE
- ...
- GregorianDiffDate(23,1,1994,7,&dday,&dmonth,&dyear);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 3200!
-
- BUGS
- unknown.
-
- SEE ALSO
- GregorianDayDiff(),GregorianMonthDays(),JulianDiffDate(),
- HeisDiffDate()
-
- Date/GregorianEaster Date/GregorianEaster
-
- NAME
- GregorianEaster -- Returns the date of eastern in a year (V33)
-
- SYNOPSIS
- GregorianEaster(year,dday,dmonth);
- d0 a0 a1
-
- void GregorianEaster(const int year, unsigned short *dday,
- unsigned short *dmonth);
-
- FUNCTION
- Returns the date of eastern for a specified year.
-
- INPUTS
- year - eastern is calculated for this year
-
- RESULT
- dday - day of easter-sunday
- dmonth - month of easter-sunday
-
- EXAMPLE
- ...
- GregorianEaster(1994,&dday,&dmonth);
- ...
-
- NOTES
- Use this only for 1900 to 2099!
- Tested for 1977-1994! But this formula is from Gauß - so it must be
- correct :) but extended by me (hope this will be a good thing too!)
-
- BUGS
- None.
-
- SEE ALSO
- GEP(),GregorianJHSB()
-
- Date/GregorianLeapYear Date/GregorianLeapYear
-
- NAME
- GregorianLeapYear -- Checks if a year is a leap year. (V33)
-
- SYNOPSIS
- leapyear = GregorianLeapYear(year);
- d0 d0
-
- bool GregorianLeapYear(const int year);
-
- FUNCTION
- GregorianLeapYear checks if a year is a leap year.
- For years after 1582 all years dividable by 4 are leap years,
- without years dividable by 100, but years dividable by 400
- are leap years again!
- For years before 1582 see JulianLeapYear().
-
- INPUTS
- year - The year which should be checked (from -32768 to 32767)
- I think only values from -7 to 3200 are valid, because of
- the variant that was done on -8 by Augustus and other things!
-
- RESULT
- leapyear - TRUE if the year is a leap year, otherwise false.
-
- EXAMPLE
- ...
- if (GregorianLeapYear(1994))
- printf("leap year!\n");
- else
- printf("no leap year!\n");
- ...
-
- NOTES
- A year is 365.2425 days long!
- Use this function only for values from -7 to 3199!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianLeapYear(),HeisLeapYear()
-
- Date/GregorianMonthDays Date/GregorianMonthDays
-
- NAME
- GregorianMonthDays -- Gives back the number of days of a month. (V33)
-
- SYNOPSIS
- days = GregorianMonthDays(month,year);
- d0 d0 d1
-
- unsigned short GregorianMonthDays(const unsigned short month,
- const int year);
-
- FUNCTION
- GregorianMonthDays gives you back the number of days a month in
- a specified year have.
- For the year 1582 and the month 10 there are only 21 days,
- because of the Gregorian-reform 10 days are delete from
- the month (for more look out for books about this!)
-
- INPUTS
- month - The month from wich you want to get the number of days.
- year - The year in which the month is.
-
- RESULT
- days - The number of days the month uses, or 0 if you use
- a wrong month.
-
- EXAMPLE
- ...
- days = GregorianMonthDays(1,1994);
- printf("Days of January 1994 : %d\n",days);
- ...
-
- NOTES
- Use this function only for years from -7 to 3199!
-
- BUGS
- none.
-
- SEE ALSO
- GregorianLeapYear(),JulianMonthDays(),HeisMonthDays()
-
- Date/GregorianMoonAge Date/GregorianMoonAge
-
- NAME
- GregorianMoonAge -- Returns the age of the moon (V33)
-
- SYNOPSIS
- ep = GregorianMoonAge(day,month,year);
- d0 d0 d1 d2
-
- unsigned short GregorianMoonAge(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- Returns the age of the moon on a specified date.
-
- INPUTS
- day - For this day the age is calculated.
- month - For this month the age is calculated.
- year - For this year the age is calculated.
-
- RESULT
- ep - The age of the moon on the specified date.
-
- EXAMPLE
- ...
- ep = GregorianMoonAge(18,9,1994);
- ...
-
- NOTES
- Use this only for 1582 to 4100!
- This is only a experimental version!
-
- BUGS
- unknown.
-
- SEE ALSO
- MoonMonthAge(),GregorianEP()
-
- Date/GregorianToJD Date/GregorianToJD
-
- NAME
- GregorianToJD -- Returns the JD for a date. (V33)
-
- SYNOPSIS
- jd = GregorianToJD(day,month,year);
- d0 d0 d1 d2
-
- unsigned long GregorianToJD(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- Returns the JD for a Gregorian date.
-
- INPUTS
- day - day of the date to convert
- month - month of the date to convert
- year - year of the date to convert
-
- RESULT
- jd - This is the JD
-
- EXAMPLE
- ...
- jd = GregorianToJD(23,1,1994);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 3200!
-
- BUGS
- unknown.
-
- SEE ALSO
- GSYearToJD(),GYearToScaliger(),GregorianDayDiff(),JulianToJD(),
- HeisToJD()
-
- Date/GregorianWeek Date/GregorianWeek
-
- NAME
- GregorianWeek -- Gets the weeknumber of a specified date. (V33)
-
- SYNOPSIS
- weeknr = GregorianWeek(day,month,year);
- d0 d0 d1 d2
-
- unsigned short GregorianWeek(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- GregorianWeek gets the weeknumber for a specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
-
- RESULT
- week - This is the number of the week the specified date lies in.
- If the first day in a new year is a freiday, saturday or
- sunday, this would be the last week of the last year!
- If the 29.12. is a monday, the 30.12. is a monday or a tuesday,
- the 31.12. is a monday, tuesday or a wednesday this is the
- first week of the next year!
-
- EXAMPLE
- ...
- weeknr = GregorianWeek(4,10,1582);
- ...
-
- NOTES
- Its is better only to use this function for years from 0 to 3000!
-
- BUGS
- For years < 0 errors could occur.
-
- SEE ALSO
- JulianWeek(),HeisWeek(),GregorianWeekday(),GregorianDayDiff()
-
- Date/GregorianWeekday Date/GregorianWeekday
-
- NAME
- GregorianWeekday -- Gets the weekday of a specified date. (V33)
-
- SYNOPSIS
- weekday = GregorianWeekday(day,month,year);
- d0 d0 d1 d2
-
- Weekdays GregorianWeekday(const unsigned short day,
- unsigned short month, int year);
-
- FUNCTION
- GregorianWeekday gets the weekday for a specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
-
- RESULT
- weekday - This result is of type:
- Weekdays = (dayerr,monday,tuesday,wednesday,thursday,freiday,
- saturday,sunday);
- dayerr will show you, that an error occurs!
-
- EXAMPLE
- ...
- weekday = GregorianWeekday(22,1,1994);
- if (weekday == dayerr)
- {
- ...
- }
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 3200!
- In this version dayerr will only occur for the lost days :)
-
- BUGS
- It's not possible to use years < 0 (for more see JulianWeekday()).
-
- SEE ALSO
- JulianWeekday(),HeisWeekday()
-
- Date/GregorianYearDays Date/GregorianYearDays
-
- NAME
- GregorianYearDays -- Gives back the number of days in a year. (V33)
-
- SYNOPSIS
- days = GregorianYearDays(year);
- d0 d0
-
- unsigned int GregorianYearDays(const int year);
-
- FUNCTION
- GregorianYearDays gives you back the number of days in
- a specified year.
-
- INPUTS
- year - The year in which to count the days.
-
- RESULT
- days - The number of days the year uses.
-
- EXAMPLE
- ...
- days = GregorianYearDays(1994);
- printf("Days of 1994 : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 3199!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- GregorianMonthDays(),JulianYearDays(),HeisYearDays()
-
- Date/GSYearToJD Date/GSYearToJD
-
- NAME
- GSYearToJD -- Calcs the JD from a Scaliger year. (V33)
-
- SYNOPSIS
- jd = GSYearToJD(syear);
- d0 d0
-
- unsigned long GSYearToJD(const unsigned int syear);
-
- FUNCTION
- Returns the Julianday of a Scaliger year.
-
- INPUTS
- syear - Scaliger year
-
- RESULT
- jd - The Julianday
-
- EXAMPLE
- ...
- jd = GSYearToJD(4800);
- ...
-
- NOTES
- Its better to use this fkt only from 4707 to 7981!
-
- BUGS
- unknown.
-
- SEE ALSO
- JSYearToJD(),HSYearToJD()
-
- Date/GYearToScaliger Date/GYearToScaliger
-
- NAME
- GYearToScaliger -- Returns the year as Scaliger year. (V33)
-
- SYNOPSIS
- syear = GYearToScaliger(year);
- d0 d0
-
- unsigned int GYearToScaliger(const int year);
-
- FUNCTION
- Returns the Scaliger year.
-
- INPUTS
- year - Gregorian year
-
- RESULT
- syear - The Scaliger year
-
- EXAMPLE
- ...
- syear = GYearToScaliger(1994);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 3200!
-
- BUGS
- unknown.
-
- SEE ALSO
- JYearToScaliger(),HYearToScaliger()
-
- Date/HeisDayDiff Date/HeisDayDiff
-
- NAME
- HeisDayDiff -- Calculates the days between 2 dates. (V33)
-
- SYNOPSIS
- days = HeisDayDiff(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- long HeisDayDiff(const unsigned short day1, unsigned short month1,
- int year1, const unsigned short day2, unsigned short month2,
- int year2);
-
- FUNCTION
- HeisDayDiff gives you back the number of days between
- two specified dates.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- days - The number of days between the two dates
- (positive if date1 <= date2).
-
- EXAMPLE
- ...
- days = HeisDayDiff(18,9,1970,22,1,1994);
- printf("Age of Kai Hofmann in days : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 8000!
-
- BUGS
- If you use on of the dates 5.10.1582 to 14.10.1582 you will become
- wrong output, because this days don't exist!
-
- SEE ALSO
- HeisLeapYear(),HeisMonthDays(),HeisYearDays(),
- JulianDayDiff(),GregorianDayDiff()
-
- Date/HeisDayGreater Date/HeisDayGreater
-
- NAME
- HeisDayGreater -- Checks if date1 is greater than date2. (V33)
-
- SYNOPSIS
- greater = HeisDayGreater(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- bool HeisDayGreater(const unsigned short day1,
- const unsigned short month1, const int year1,
- const unsigned short day2, const unsigned short month2,
- const int year2);
-
- FUNCTION
- HeisDayGreater test if date1 is greater than date2.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- greater - This is TRUE is date1 > date2 otherwise it's FALSE.
-
- EXAMPLE
- ...
- if (HeisDayGreater(18,9,1970,22,1,1994))
- printf(">\n");
- else
- printf("<=\n");
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 8000!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianDayGreater(),GregorianDayGreater()
-
- Date/HeisDaysAfterWeekday Date/HeisDaysAfterWeekday
-
- NAME
- HeisDaysAfterWeekday -- Returns the diff to the wday after. (V33)
-
- SYNOPSIS
- days = HeisDaysAfterWeekday(day,month,year,weekday);
- d0 d0 d1 d2 d3
-
- unsigned short HeisDaysAfterWeekday(const unsigned short day,
- const unsigned short month, const int year,
- const Weekdays weekday);
-
- FUNCTION
- Returns the days to the weekday after the specified date.
- So if you specifie the 22.1.1994 (saturday) and thursday
- you get back 5!
- If you specifie the 22.1.1994 and saturday you became back 0
- (the same day)!
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- weekday - weekday to search for building difference
-
- RESULT
- days - The days after to the searched weekday.
-
- EXAMPLE
- ...
- days = HeisDaysAfterWeekday(22,1,1994,thursday);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 8000!
-
- BUGS
- See HeisWeekday()!
-
- SEE ALSO
- HeisWeekday(),JulianDaysAfterWeekday(),GregorianDaysAfterWeekday()
-
- Date/HeisDaysBeforeWeekday Date/HeisDaysBeforeWeekday
-
- NAME
- HeisDaysBeforeWeekday -- Returns the diff to wday before. (V33)
-
- SYNOPSIS
- days = HeisDaysBeforeWeekday(day,month,year,weekday);
- d0 d0 d1 d2 d3
-
- unsigned short HeisDaysBeforeWeekday(const unsigned short day,
- const unsigned short month, const int year,
- const Weekdays weekday);
-
- FUNCTION
- Returns the days to the weekday before the specified date.
- So if you specifie the 22.1.1994 (saturday) and thursday
- you get back 2!
- If you specifie the 22.1.1994 and saturday you became back 0
- (the same day)!
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- weekday - weekday to search for building difference
-
- RESULT
- days - The days back to the searched weekday (1-7)
- If you get back 8 an error occurs!
-
- EXAMPLE
- ...
- days = HeisDaysBeforeWeekday(22,1,1994,thursday);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 8000!
-
- BUGS
- See HeisWeekday()!
-
- SEE ALSO
- HeisWeekday(),JulianDaysBeforeWeekday(),GregorianDaysBeforeWeekday()
-
- Date/HeisDaySmaller Date/HeisDaySmaller
-
- NAME
- HeisDaySmaller -- Checks if date1 is smaller than date2. (V33)
-
- SYNOPSIS
- smaller = HeisDaySmaller(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- bool HeisDaySmaller(const unsigned short day1,
- const unsigned short month1, const int year1,
- const unsigned short day2, const unsigned short month2,
- const int year2);
-
- FUNCTION
- HeisDaySmaller test if date1 is smaller than date2.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- smaller - This is TRUE is date1 < date2 otherwise it's FALSE.
-
- EXAMPLE
- ...
- if (HeisDaySmaller(18,9,1970,22,1,1994))
- printf("<\n");
- else
- printf(">=\n");
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 8000!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianDaySmaller,GregorianDaySmaller()
-
- Date/HeisDiffDate Date/HeisDiffDate
-
- NAME
- HeisDiffDate -- Returns the date for a diff to another date. (V33)
-
- SYNOPSIS
- HeisDiffDate(day,month,year,diffdays,dday,dmonth,dyear);
- d0 d1 d2 d3 a0 a1 a2
-
- void HeisDiffDate(const unsigned short day,
- const unsigned short month, const int year, int days,
- unsigned short *dday, unsigned short *dmonth, int *dyear);
-
- FUNCTION
- Returns the date wich lies diffdays before/after the specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- diffdays - difference to the date in days
-
- RESULT
- dday - Destination day
- dmonth - Destination month
- dyear - Destination year
-
- EXAMPLE
- ...
- HeisDiffDate(23,1,1994,7,&dday,&dmonth,&dyear);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 8000!
-
- BUGS
- unknown.
-
- SEE ALSO
- HeisDayDiff(),HeisMonthDays(),JulianDiffDate(),GregorianDiffDate()
-
- Date/HeisLeapYear Date/HeisLeapYear
-
- NAME
- HeisLeapYear -- Checks if a year is a leap year. (V33)
-
- SYNOPSIS
- leapyear = HeisLeapYear(year);
- d0 d0
-
- bool HeisLeapYear(const int year);
-
- FUNCTION
- HeisLeapYear checks if a year is a leap year.
- For years after 1582 see GregorianLeapYear(),
- The correction from N. Heis says, that all years dividable by
- 3200 are no longer leap years!
- For years before 1582 see JulianLeapYear
-
- INPUTS
- year - The year which should be checked (from -32768 to 32767)
- I think only values from -7 to 32767 are valid, because of
- the variant that was done on -8 by Augustus and other things!
-
- RESULT
- leapyear - TRUE if the year is a leap year, otherwise false.
-
- EXAMPLE
- ...
- if (HeisLeapYear(1994))
- printf("leap year!\n");
- else
- printf("no leap year!\n");
- ...
-
- NOTES
- A year is now 365.2421875 days!
- Use this function only for values from -7 to 8000!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianLeapYear(),GregorianLeapYear()
-
- Date/HeisMonthDays Date/HeisMonthDays
-
- NAME
- HeisMonthDays -- Gives back the number of days of a month. (V33)
-
- SYNOPSIS
- days = HeisMonthDays(month,year);
- d0 d0 d1
-
- unsigned short HeisMonthDays(const unsigned short month,
- const int year);
-
- FUNCTION
- HeisMonthDays gives you back the number of days a month in
- a specified year have.
- For the year 1582 and the month 10 there are only 21 days,
- because of the Gregorian-reform 10 days are delete from
- the month (for more look out for books about this!)
-
- INPUTS
- month - The month from wich you want to get the number of days.
- year - The year in which the month is.
-
- RESULT
- days - The number of days the month uses, or 0 if you use
- a wrong month.
-
- EXAMPLE
- ...
- days = HeisMonthDays(1,1994);
- printf("Days of January 1994 : %d\n",days);
- ...
-
- NOTES
- Use this function only for years from -7 to 8000!
-
- BUGS
- See GregorianMonthDays!
-
- SEE ALSO
- HeisLeapYear(),JulianMonthDays(),GregorianMonthDays()
-
- Date/HeisToJD Date/HeisToJD
-
- NAME
- HeisToJD -- Returns the JD for a date. (V33)
-
- SYNOPSIS
- jd = HeisToJD(day,month,year);
- d0 d0 d1 d2
-
- unsigned long HeisToJD(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- Returns the JD for a Heis date.
-
- INPUTS
- day - day of the date to convert
- month - month of the date to convert
- year - year of the date to convert
-
- RESULT
- jd - This is the JD
-
- EXAMPLE
- ...
- jd = HeisToJD(23,1,1994);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 3268!
-
- BUGS
- unknown.
-
- SEE ALSO
- HSYearToJD(),HYearToScaliger(),HeisDayDiff(),JulianToJD(),HeisToJD()
-
- Date/HeisWeek Date/HeisWeek
-
- NAME
- HeisWeek -- Gets the weeknumber of a specified date. (V33)
-
- SYNOPSIS
- weeknr = HeisWeek(day,month,year);
- d0 d0 d1 d2
-
- unsigned short HeisWeek(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- HeisWeek gets the weeknumber for a specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
-
- RESULT
- week - This is the number of the week the specified date lies in.
- If the first day in a new year is a freiday, saturday or
- sunday, this would be the last week of the last year!
- If the 29.12. is a monday, the 30.12. is a monday or a tuesday,
- the 31.12. is a monday, tuesday or a wednesday this is the
- first week of the next year!
-
- EXAMPLE
- ...
- weeknr = HeisWeek(4,10,1582);
- ...
-
- NOTES
- Its is better only to use this function for years from 0 to 8000!
-
- BUGS
- For years < 0 errors could occur.
-
- SEE ALSO
- JulianWeek(),GregorianWeek(),HeisWeekday(),HeisDayDiff()
-
- Date/HeisWeekday Date/HeisWeekday
-
- NAME
- HeisWeekday -- Gets the weekday of a specified date. (V33)
-
- SYNOPSIS
- weekday = HeisWeekday(day,month,year);
- d0 d0 d1 d2
-
- Weekdays HeisWeekday(const unsigned short day, unsigned short month,
- int year);
-
- FUNCTION
- HeisWeekday gets the weekday for a specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
-
- RESULT
- weekday - This result is of type:
- Weekdays = (dayerr,monday,tuesday,wednesday,thursday,freiday,
- saturday,sunday);
- dayerr will show you, that an error occurs!
-
- EXAMPLE
- ...
- weekday = HeisWeekday(22,1,1994);
- if (weekday == dayerr)
- {
- ...
- }
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 8000!
- In this version dayerr will only occur for the lost days :)
-
- BUGS
- Its not possible to use year < 0 (see JulianWeekday() for more).
-
- SEE ALSO
- JulianWeekday(),GregorianWeekday()
-
- Date/HeisYearDays Date/HeisYearDays
-
- NAME
- HeisYearDays -- Gives back the number of days in a year. (V33)
-
- SYNOPSIS
- days = HeisYearDays(year);
- d0 d0
-
- unsigned int HeisYearDays(const int year);
-
- FUNCTION
- HeisYearDays gives you back the number of days in
- a specified year.
-
- INPUTS
- year - The year in which to count the days.
-
- RESULT
- days - The number of days the year uses.
-
- EXAMPLE
- ...
- days = HeisYearDays(1994);
- printf("Days of 1994 : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 8000!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- HeisMonthDays(),JulianYearDays(),GregorianYearDays()
-
- Date/HSYearToJD Date/HSYearToJD
-
- NAME
- HSYearToJD -- Calcs the JD from a Scaliger year. (V33)
-
- SYNOPSIS
- jd = HSYearToJD(syear);
- d0 d0
-
- unsigned long HSYearToJD(const unsigned int syear);
-
- FUNCTION
- Returns the Julianday of a Scaliger year.
-
- INPUTS
- syear - Scaliger year
-
- RESULT
- jd - The Julianday
-
- EXAMPLE
- ...
- jd = HSYearToJD(6700);
- ...
-
- NOTES
- Its better to use this fkt only from 4707 to 7981!
- In this version only GSYearToJD() is called, because the
- Scaliger period is only valid to 3268
-
- BUGS
- unknown.
-
- SEE ALSO
- JSYearToJD(),GSYearToJD()
-
- Date/HYearToScaliger Date/HYearToScaliger
-
- NAME
- HYearToScaliger -- Returns the year as Scaliger year. (V33)
-
- SYNOPSIS
- syear = HYearToScaliger(year);
- d0 d0
-
- unsigned int HYearToScaliger(const int year);
-
- FUNCTION
- Returns the Scaliger year.
-
- INPUTS
- year - Heis year
-
- RESULT
- syear - The Scaliger year
-
- EXAMPLE
- ...
- syear = HYearToScaliger(1994);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 8000!
-
- BUGS
- The Scaliger period is defined to 3268!!!.
-
- SEE ALSO
- JYearToScaliger(),GYearToScaliger()
-
- Date/JDtoMJD Date/JDtoMJD
-
- NAME
- JDtoMJD -- Switches from JD to MJD. (V33)
-
- SYNOPSIS
- mjd = JDtoMJD(jd);
- d0 d0
-
- unsigned long JDtoMJD(const unsigned long jd);
-
- FUNCTION
- Returns the Modified Julianday of a Julianday.
-
- INPUTS
- jd - Julianday
-
- RESULT
- mjd - The Modified Julianday
-
- EXAMPLE
- ...
- mjd = JDtoMJD(2449354);
- ...
-
- NOTES
- none
-
- BUGS
- Only use this funktion for jd > 2400001, because mjd is only
- defined for this, otherwise system will crash!
-
- SEE ALSO
- MJDtoJD()
-
- Date/JDToTime Date/JDToTime
-
- NAME
- JDToTime -- Returns the real time for a JD time. (V33)
-
- SYNOPSIS
- JDToTime(jd,rhour,rmin,rsec);
- d0 a0 a1 a2
-
- void JDToTime(float jd, unsigned short *rhour, unsigned short *rmin,
- unsigned short *rsec);
-
- FUNCTION
- Returns the real time for a JD time.
-
- INPUTS
- jd - JD time
-
- RESULT
- rhour - 24 hour real time
- rmin - real minutes
- rsec - real seconds
-
- EXAMPLE
- ...
- JDToTime(0.76543,&rhour,&rmin,&rsec);
- ...
-
- NOTES
- none.
-
- BUGS
- If jd is > 0 (including days) there will be occur arithmetic bugs!
-
- SEE ALSO
- TimeToJD()
-
- Date/JSYearToJD Date/JSYearToJD
-
- NAME
- JSYearToJD -- Calcs the JD from a Scaliger year. (V33)
-
- SYNOPSIS
- jd = JSYearToJD(syear);
- d0 d0
-
- unsigned long JSYearToJD(const unsigned int syear);
-
- FUNCTION
- Returns the Julianday of a Scaliger year.
-
- INPUTS
- syear - Scaliger year
-
- RESULT
- jd - The Julianday
-
- EXAMPLE
- ...
- jd = JSYearToJD(4800);
- ...
-
- NOTES
- Its better to use this fkt only from 4707 to 6295!
-
- BUGS
- unknown.
-
- SEE ALSO
- GSYearToJD(),HSYearToJD()
-
- Date/JulianDayDiff Date/JulianDayDiff
-
- NAME
- JulianDayDiff -- Calculates the days between 2 dates. (V33)
-
- SYNOPSIS
- days = JulianDayDiff(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- long JulianDayDiff(const unsigned short day1, unsigned short month1,
- int year1, const unsigned short day2, unsigned short month2,
- int year2);
-
- FUNCTION
- JulianDayDiff gives you back the number of days between
- two specified dates.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- days - The number of days between the two dates
- (positive if date1 <= date2).
-
- EXAMPLE
- ...
- days = JulianDayDiff(18,9,1970,22,1,1994);
- printf("Age of Kai Hofmann in days : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 1582!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianLeapYear(),JulianMonthDays(),JulianYearDays(),
- GregorianDayDiff(),HeisDayDiff()
-
- Date/JulianDayGreater Date/JulianDayGreater
-
- NAME
- JulianDayGreater -- Checks if date1 is greater than date2. (V33)
-
- SYNOPSIS
- greater = JulianDayGreater(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- bool JulianDayGreater(const unsigned short day1,
- const unsigned short month1, const int year1,
- const unsigned short day2, const unsigned short month2,
- const int year2);
-
- FUNCTION
- JulianDayGreater test if date1 is greater than date2.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- greater - This is TRUE is date1 > date2 otherwise it's FALSE.
-
- EXAMPLE
- ...
- if (JulianDayGreater(18,9,1970,22,1,1994))
- printf(">\n");
- else
- printf("<=\n");
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 1582!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- GregorianDayGreater(),HeisDayGreater()
-
- Date/JulianDaysAfterWeekday Date/JulianDaysAfterWeekday
-
- NAME
- JulianDaysAfterWeekday -- Returns the diff to the wday after. (V33)
-
- SYNOPSIS
- days = JulianDaysAfterWeekday(day,month,year,weekday);
- d0 d0 d1 d2 d3
-
- unsigned short JulianDaysAfterWeekday(const unsigned short day,
- const unsigned short month, const int year,
- const Weekdays weekday);
-
- FUNCTION
- Returns the days to the weekday after the specified date.
- So if you specifie the 22.1.1994 (saturday) and thursday
- you get back 5!
- If you specifie the 22.1.1994 and saturday you became back 0
- (the same day)!
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- weekday - weekday to search for building difference
-
- RESULT
- days - The days after to the searched weekday.
-
- EXAMPLE
- ...
- days = JulianDaysAfterWeekday(22,1,1994,thursday);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 1582!
-
- BUGS
- See JulianWeekday()!
-
- SEE ALSO
- JulianWeekday(),GregorianDaysAfterWeekday(),HeisDaysAfterWeekday()
-
- Date/JulianDaysBeforeWeekday Date/JulianDaysBeforeWeekday
-
- NAME
- JulianDaysBeforeWeekday -- Returns the diff to the wday before. (V33)
-
- SYNOPSIS
- days = JulianDaysBeforeWeekday(day,month,year,weekday);
- d0 d0 d1 d2 d3
-
- unsigned short JulianDaysBeforeWeekday(const unsigned short day,
- const unsigned short month, const int year,
- const Weekdays weekday);
-
- FUNCTION
- Returns the days to the weekday before the specified date.
- So if you specifie the 22.1.1994 (saturday) and thursday
- you get back 2!
- If you specifie the 22.1.1994 and saturday you became back 0
- (the same day)!
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- weekday - weekday to search for building difference
-
- RESULT
- days - The days back to the searched weekday (0-6)
- If you get back 8 an error occurs!
-
- EXAMPLE
- ...
- days = JulianDaysBeforeWeekday(22,1,1994,thursday);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 02.1582!
-
- BUGS
- See JulianWeekday()!
-
- SEE ALSO
- JulianWeekday(),GregorianDaysBeforeWeekday(),HeisDaysBeforeWeekday()
-
- Date/JulianDaySmaller Date/JulianDaySmaller
-
- NAME
- JulianDaySmaller -- Checks if date1 is smaller than date2. (V33)
-
- SYNOPSIS
- smaller = JulianDaySmaller(day1,month1,year1,day2,month2,year2);
- d0 d0 d1 d2 d3 d4 d5
-
- bool JulianDaySmaller(const unsigned short day1,
- const unsigned short month1, const int year1,
- const unsigned short day2, const unsigned short month2,
- const int year2);
-
- FUNCTION
- JulianDaySmaller test if date1 is smaller than date2.
-
- INPUTS
- day1 - day of the first date
- month1 - month of the first date
- year1 - year of the first date
- day2 - day of the second date
- month2 - month of the second month
- year2 - year of the second date
-
- RESULT
- smaller - This is TRUE is date1 < date2 otherwise it's FALSE.
-
- EXAMPLE
- ...
- if (JulianDaySmaller(18,9,1970,22,1,1994))
- printf("<\n");
- else
- printf(">=\n");
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 1582!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- GregorianDaySmaller(),HeisDaySmaller()
-
- Date/JulianDiffDate Date/JulianDiffDate
-
- NAME
- JulianDiffDate -- Returns the date for a diff to another date. (V33)
-
- SYNOPSIS
- JulianDiffDate(day,month,year,diffdays,dday,dmonth,dyear);
- d0 d1 d2 d3 a0 a1 a2
-
- void JulianDiffDate(const unsigned short day,
- const unsigned short month, const int year, int days,
- unsigned short *dday, unsigned short *dmonth, int *dyear);
-
- FUNCTION
- Returns the date wich lies diffdays before/after the specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
- diffdays - difference to the date in days
-
- RESULT
- dday - Destination day
- dmonth - Destination month
- dyear - Destination year
-
- EXAMPLE
- ...
- JulianDiffDate(23,1,1994,7,&dday,&dmonth,&dyear);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 1582!
-
- BUGS
- unknown.
-
- SEE ALSO
- JulianDayDiff(),JulianMonthDays(),GregorianDiffDate(),HeisDiffDate()
-
- Date/JulianLeapYear Date/JulianLeapYear
-
- NAME
- JulianLeapYear -- Checks if a year is a leap year. (V33)
-
- SYNOPSIS
- leapyear = JulianLeapYear(year);
- d0 d0
-
- bool JulianLeapYear(const int year);
-
- FUNCTION
- JulianLeapYear checks if a year is a leap year in the julian calendar
- For years after Chr. it checks if the year is dividable by 4.
- For years before Chr. a leap year must have a modulo 4 value of 1
-
- INPUTS
- year - The year which should be checked (from -32768 to 32767)
- I think only values from -7 to 32767 are valid, because of
- the variant that was done on -8 by Augustus and other things!
-
- RESULT
- leapyear - TRUE if the year is a leap year, otherwise false.
-
- EXAMPLE
- ...
- if (JulianLeapYear(1994))
- printf("leap year!\n");
- else
- printf("no leap year!\n");
- ...
-
- NOTES
- A year is 365.25 days long!
- Use this function only for values from -7 to 1582!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- GregorianLeapYear(),HeisLeapYear()
-
- Date/JulianMonthDays Date/JulianMonthDays
-
- NAME
- JulianMonthDays -- Gives back the number of days of a month. (V33)
-
- SYNOPSIS
- days = JulianMonthDays(month,year);
- d0 d0 d1
-
- unsigned short JulianMonthDays(const unsigned short month,
- const int year);
-
- FUNCTION
- JulianMonthDays gives you back the number of days a month in
- a specified year have.
-
- INPUTS
- month - The month from wich you want to get the number of days.
- year - The year in which the month is.
-
- RESULT
- days - The number of days the month uses, or 0 if you use
- a wrong month.
-
- EXAMPLE
- ...
- days = JulianMonthDays(1,1994);
- printf("Days of January 1994 : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 09.1582!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianLeapYear(),GregorianMonthDays(),HeisMonthDays()
-
- Date/JulianToJD Date/JulianToJD
-
- NAME
- JulianToJD -- Returns the JD for a date. (V33)
-
- SYNOPSIS
- jd = JulianToJD(day,month,year);
- d0 d0 d1 d2
-
- unsigned long JulianToJD(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- Returns the JD for a Julian date.
-
- INPUTS
- day - day of the date to convert
- month - month of the date to convert
- year - year of the date to convert
-
- RESULT
- jd - This is the JD
-
- EXAMPLE
- ...
- jd = JulianToJD(23,1,1994);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 1582!
-
- BUGS
- unknown.
-
- SEE ALSO
- JSYearToJD(),JYearToScaliger(),JulianDayDiff(),GregorianToJD(),
- HeisToJD()
-
- Date/JulianWeek Date/JulianWeek
-
- NAME
- JulianWeek -- Gets the weeknumber of a specified date. (V33)
-
- SYNOPSIS
- weeknr = JulianWeek(day,month,year);
- d0 d0 d1 d2
-
- unsigned short JulianWeek(const unsigned short day,
- const unsigned short month, const int year);
-
- FUNCTION
- JulianWeek gets the weeknumber for a specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
-
- RESULT
- week - This is the number of the week the specified date lies in.
- If the first day in a new year is a freiday, saturday or
- sunday, this would be the last week of the last year!
- If the 29.12. is a monday, the 30.12. is a monday or a tuesday,
- the 31.12. is a monday, tuesday or a wednesday this is the
- first week of the next year!
-
- EXAMPLE
- ...
- weeknr = JulianWeek(4,10,1582);
- ...
-
- NOTES
- Its is better only to use this function for years from 0 to 1582!
-
- BUGS
- For years < 0 errors could occur.
-
- SEE ALSO
- GregorianWeek(),HeisWeek(),JulianWeekday(),JulianDayDiff()
-
- Date/JulianWeekday Date/JulianWeekday
-
- NAME
- JulianWeekday -- Gets the weekday of a specified date. (V33)
-
- SYNOPSIS
- weekday = JulianWeekday(day,month,year);
- d0 d0 d1 d2
-
- Weekdays JulianWeekday(const unsigned short day,
- unsigned short month, int year);
-
- FUNCTION
- JulianWeekday gets the weekday for a specified date.
-
- INPUTS
- day - day of the date
- month - month of the date
- year - year of the date
-
- RESULT
- weekday - This result is of type:
- Weekdays = (dayerr,monday,tuesday,wednesday,thursday,freiday,
- saturday,sunday);
- dayerr will show you, that an error occurs!
-
- EXAMPLE
- ...
- weekday = JulianWeekday(4,10,1582);
- if (weekday == dayerr)
- {
- ...
- }
- ...
-
- NOTES
- Its is better only to use this function for years from 1 to 02.1582!
- In this version no dayerr will occur!
-
- BUGS
- For years <= 0 errors could occur, or systemcrashs(?).
-
- SEE ALSO
- GregorianWeekday(),HeisWeekday()
-
- Date/JulianYearDays Date/JulianYearDays
-
- NAME
- JulianYearDays -- Gives back the number of days in a year. (V33)
-
- SYNOPSIS
- days = JulianYearDays(year);
- d0 d0
-
- unsigned int JulianYearDays(const int year);
-
- FUNCTION
- JulianYearDays gives you back the number of days in
- a specified year.
-
- INPUTS
- year - The year in which to count the days.
-
- RESULT
- days - The number of days the year uses.
-
- EXAMPLE
- ...
- days = JulianYearDays(1994);
- printf("Days of 1994 : %d\n",days);
- ...
-
- NOTES
- Its is better only to use this function for years from -7 to 1581!
-
- BUGS
- No known bugs.
-
- SEE ALSO
- JulianMonthDays(),GregorianYearDays(),HeisYearDays()
-
- Date/JYearToScaliger Date/JYearToScaliger
-
- NAME
- JYearToScaliger -- Returns the year as Scaliger year. (V33)
-
- SYNOPSIS
- syear = JYearToScaliger(year);
- d0 d0
-
- unsigned int JYearToScaliger(const int year);
-
- FUNCTION
- Returns the Scaliger year.
-
- INPUTS
- year - Julian year
-
- RESULT
- syear - The Scaliger year
-
- EXAMPLE
- ...
- syear = JYearToScaliger(1582);
- ...
-
- NOTES
- Its better to use this fkt only from -7 to 1582!
-
- BUGS
- unknown.
-
- SEE ALSO
- GYearToScaliger(),HYearToScaliger()
-
- Date/LMT Date/LMT
-
- NAME
- LMT -- Calculates your local time in your timezone (V33)
-
- SYNOPSIS
- secs = LMT(secs,meridian,pos);
- d0 d0 d1 d2
-
- unsigned long LMT(const unsigned long secs,
- const float meridiandegree, const float posdegree);
-
- FUNCTION
- Calculates your Local Mean Time of you place!
-
- INPUTS
- secs - Seconds of the running day (hours*3600+min*60+sec)
- meridian - Degrees of your timezone-meridian
- pos - Degrees of your place
-
- RESULT
- secs - Local seconds of the running day
-
- EXAMPLE
- ...
- secs = LMT(76080,-15.0,-8.923055556);
- ...
-
- NOTES
- none
-
- BUGS
- No errorcheck, if you put in valid degrees (-180 to +180)
-
- SEE ALSO
-
-
- Date/MJDtoJD Date/MJDtoJD
-
- NAME
- MJDtoJD -- Switches from MJD to JD. (V33)
-
- SYNOPSIS
- jd = MJDtoJD(mjd);
- d0 d0
-
- unsigned long MJDtoJD(const unsigned long mjd);
-
- FUNCTION
- Returns the Julianday of a Modified Julianday.
-
- INPUTS
- mjd - Modified Julianday
-
- RESULT
- jd - The Julianday
-
- EXAMPLE
- ...
- jd = JDtoMJD(49353);
- ...
-
- NOTES
- none
-
- BUGS
- unknown.
-
- SEE ALSO
- MJDtoJD()
-
- Date/ScaligerYearToG Date/ScaligerYearToG
-
- NAME
- ScaligerYearToG -- Returns the Scaliger year as Gregorian year. (V33)
-
- SYNOPSIS
- year = ScaligerYearToG(syear);
- d0 d0
-
- int ScaligerYearToG(const unsigned int syear);
-
- FUNCTION
- Returns the Gregorian year of a Scaliger year.
-
- INPUTS
- syear - Scaliger year
-
- RESULT
- year - The Gregorian year
-
- EXAMPLE
- ...
- year = ScaligerYearToG(6400);
- ...
-
- NOTES
- Its better to use this fkt only from 4707 to 7981!
-
- BUGS
- unknown.
-
- SEE ALSO
- ScaligerYearToJ(),ScaligerYearToH()
-
- Date/ScaligerYearToH Date/ScaligerYearToH
-
- NAME
- ScaligerYearToH -- Returns the Scaliger year as Heis year. (V33)
-
- SYNOPSIS
- year = ScaligerYearToH(syear);
- d0 d0
-
- int ScaligerYearToH(const unsigned int syear);
-
- FUNCTION
- Returns the Heis year of a Scaliger year.
-
- INPUTS
- syear - Scaliger year
-
- RESULT
- year - The Heis year
-
- EXAMPLE
- ...
- year = ScaligerYearToH(7000);
- ...
-
- NOTES
- Its better to use this fkt only from 4707 to 7981!
-
- BUGS
- unknown.
-
- SEE ALSO
- ScaligerYearToJ(),ScaligerYearToG()
-
- Date/ScaligerYearToJ Date/ScaligerYearToJ
-
- NAME
- ScaligerYearToJ -- Returns the Scaliger year as Julian year. (V33)
-
- SYNOPSIS
- year = ScaligerYearToJ(syear);
- d0 d0
-
- int ScaligerYearToJ(const unsigned int syear);
-
- FUNCTION
- Returns the Julian year of a Scaliger year.
-
- INPUTS
- syear - Scaliger year
-
- RESULT
- year - The Julian year
-
- EXAMPLE
- ...
- year = ScaligerYearToJ(4800);
- ...
-
- NOTES
- Its better to use this fkt only from 4707 to 6295!
-
- BUGS
- unknown.
-
- SEE ALSO
- ScaligerYearToG(),ScaligerYearToH()
-
- Date/SecToTime Date/SecToTime
-
- NAME
- SecToTime -- Returns the time from seconds (V33)
-
- SYNOPSIS
- SecToTime(secs,hour,min,sec);
- d0 a0 a1 a2
-
- SecToTime(unsigned long secs, unsigned short *hour,
- unsigned short *min, unsigned short *sec);
-
- FUNCTION
- Gives you back the time from the specified seconds
-
- INPUTS
- secs - Time in seconds
-
- RESULT
- hour - hours (0-23)
- min - minutes (0-59)
- sec - seconds (0-59)
-
- EXAMPLE
- ...
- SecToTime(76860,&hour,&min,&sec);
- ...
-
- NOTES
- Don't forget to convert 24h time to AM/PM time if needed!
-
- BUGS
- No errorcheck, if you use a valid time
-
- SEE ALSO
- TimeToSec()
-
- Date/TimeToJD Date/TimeToJD
-
- NAME
- TimeToJD -- Returns the JD for a time. (V33)
-
- SYNOPSIS
- jd = TimeToJD(hour,min,sec);
- d0 d0 d1 d2
-
- float TimeToJD(const unsigned short hour, const unsigned short min,
- const unsigned short sec);
-
- FUNCTION
- Returns the JD for a specified time.
-
- INPUTS
- hour - hour of the time to convert
- min - minute of the time to convert
- sec - sec. of the time to convert
-
- RESULT
- jd - This is the JD time
-
- EXAMPLE
- ...
- jd = TimeToJD(16,33,0);
- ...
-
- NOTES
- none
-
- BUGS
- There is no check, if the specified time is a valid time!
-
- SEE ALSO
- JDToTime()
-
- Date/TimeToSec Date/TimeToSec
-
- NAME
- TimeToSec -- Returns the time in seconds (V33)
-
- SYNOPSIS
- secs = TimeToSec(hour,min,sec);
- d0 d0 d1 d2
-
- unsigned long TimeToSec(const unsigned short hour,
- const unsigned short min, const unsigned short sec);
-
- FUNCTION
- Gives you back the time in seconds
-
- INPUTS
- hour - hours you want (0-23)
- min - minutes you want (0-59)
- sec - seconds you want (0-59)
-
- RESULT
- secs - Time in seconds
-
- EXAMPLE
- ...
- secs = TimeToSec(21,15,00);
- ...
-
- NOTES
- Don't forget to convert AM/PM time to 24h time!
-
- BUGS
- No errorcheck, if you use a valid time
-
- SEE ALSO
- SecToTime()
-
- Date/TimeZoneFactor Date/TimeZoneFactor
-
- NAME
- TimeZoneFactor -- Returns the value you have to add to GMT time (V33)
-
- SYNOPSIS
- addhours = TimeZoneFactor(degrees);
- d0 d0
-
- short TimeZoneFactor(const short degree);
-
- FUNCTION
- This gives you the hours you have to add to GMT time,
- specified on the fact, that a timezone is 15 degrees
- and that GMT is centered on 0 degrees!
-
- INPUTS
- degrees - Position of timezone you live in
- (from -180 east to +180 west)
-
- RESULT
- addhours - Time to add to GMT time to get your locale zone time
- (-12 to +12)
-
- EXAMPLE
- ...
- addhours = TimeZoneFactor(-8);
- ...
-
- NOTES
- none
-
- BUGS
- No errorcheck, if you put in valid degrees (-180 to +180)
- Only full degrees are supportet, keep sure that you
- round in the right way for 0.x degree places
- I am not sure about the correct +/- behaviour!!!
-
- SEE ALSO
-
-
-