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.

1. Calendars

The calendars currently implemented are:

  • TGregorianCalendar
    TGregorianCalendar is just a wrapper for the already-available functions of SysUtils.
  • TPersianCalendar
    The Persian calendar using Jalali 33-year cycles to determine common and leap years.
  • TAstroPersianCalendar
    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.
  • THijriCalendar
    The Hijri (Islamic lunar) calendar
  • TObservedHijriCalendar
    The Hijri calendar with additional supplements that you can use to provide observational data to adjust years/months.

2. Database Date/Time Field Types
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.

3. Calendar Events
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:

  • XCalendarEvents
    Used for calculating the occurences of general annual events.
  • XCalendarAstroEvents
    Used for calculating the occurences of some astronomical events, namely, equinoxes, moon phases and eclipses.
  • XCalendarAggregateEvents
    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.

4. Astronomical Stuff
XCalendar contains a Delphi port of some part of the AA+ project (v1.30) by PJ Naughter ( for use in it's astronomical calculations.



You can download XCalendar from the following location:



License Information

    XCalendar is licensed under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 2.1 or any later version.