As of Version 10.0, calendar functionality is built into the Wolfram Language 

Calendar Package

This package provides a unified treatment of the basic calendar operations. The main idea is to treat the calendar as a generalized number system, so that days, weeks, months, and years are thought of as generalizing the digits of a number in a given base.

The Gregorian calendar has been in use in the Western world since 1582 by Roman Catholic countries, and since 1752 by English‐speaking countries. The Gregorian calendar counts leap years every year divisible by 4, except for centuries not divisible by 400, which are not leap years.

The calendar used before the Gregorian calendar was the Julian calendar. This system counts every year divisible by 4 as a leap year. At present there is a disparity of 13 days between the calendars. The changeover between these two calendars was done by omitting a number of days; therefore you must account for this in computations.

The default calendar used in this package is the one used by England and her former colonies (e.g. the UnitedStates). It uses the Gregorian calendar for dates starting with September14, 1752, and the Julian calendar for dates up to September2, 1752. If you do not specify a system, this is the calendar used by DayOfWeek, DaysBetween, and DaysPlus.

The Julian calendar is valid to March1, year 4, but not before then, since the year 4 was not a leap year.

The Islamic calendar is used mainly to keep track of Islamic holy days. It is a purely lunar calendar and a year has either 354 or 355 days. The months do not correspond to the solar year and migrate over the solar year following a 30‐year cycle. The Islamic calendar began on the Hegira, which was July16, 622 in the Julian calendar.

In the Julian calendar, the year beginning a century not divisible by 400 is a leap year.