XCalendar is a collection of general calendar utilities for Delphi.
It contains calendars, database date/time field types, tools to find
calendar events and some astronomical stuff.
The calendars currently implemented are:
TGregorianCalendar is just a wrapper for the already-available functions
The Persian calendar using Jalali 33-year cycles to determine common and
The Persian calendar using the astronomical rule to determine common
and leap years: If the vernal equinox occurs before true solar noon,
then the day becomes the first day of the new year, but if it happens
after the noon, then the next day becomes the first day of the new year.
The Hijri (Islamic lunar) calendar
The Hijri calendar with additional supplements that you can use to provide
observational data to adjust years/months.
XcalDateTimeField, XcalDateField, XCalSQLTimeStampField are available from
the New Field dialog box to allow for data-aware controls to set/get the
date/time fields as strings in the calendar specified by the XCalendar
property of the field.
XCalendar event components are derived from TCustomXCalendarEvents which
presents methods to find the occurences of the events implemented in
descendant components between two times.
These event components are implemented:
Used for calculating the occurences of general annual events.
Used for calculating the occurences of some astronomical events, namely,
equinoxes, moon phases and eclipses.
You can use this component to gather other event components into a group.
The occurences of the contained event components are accumulated to make
the occurences of this event component.
XCalendar contains a Delphi port of some part of the AA+ project (v1.30) by
PJ Naughter (http://www.naughter.com) for use in it's astronomical