Holiday Calculator 2.0 calculates when various holidays occur in any given year BC or AD. Designed to be cannibalised to include the calculation routines in your own programs. It currently calculates the following holidays: New Years Day Martin Luther King Day Inauguration Day Robbie Burns Day Groundhog Day Valentines Day Ash Wednesday Lincoln's Birthday Presidents Day Washington's Birthday Alberta Family Day St Patrick's day Vernal Equinox Palm Sunday Good Friday April Fools Day Easter Sunday Easter Monday Earth Day Cinco de Mayo Mothers Day Armed Forces Day Victoria Day Memorial Day Fathers Day Summer Solstice St Jean-Baptiste Day Canada Day Independence Day Utah Pioneer Day Canada Civic Day Canadian Labour Day American Labor Day Autumnal Equinox Canadian Thanksgiving Columbus Day Halloween General Election Day Remembrance Day Veterans Day American Thanksgiving Winter Solstice Christmas Eve Christmas Boxing Day New Years Eve If a holiday was not celebrated in a given year, it will not show. Includes complete Java source code to calculate when the holiday occurs in a given year, when it was first celebrated, when first proclaimed, the rule for how it is calculated in words and an authority to go to for more information. Also calculates the nearest weekday to any given holiday, when you actually get the day off. This is what I refer to by the term "shifted". Boxing day has special shift handling. Shareware that may be freely distributed and used for any purpose except military. In the source are methods that can also be used to calculate how many business days were between given dates. It is quite easy to specify which days you want considered as holidays using methods like addHoliday where you specify the date or the name of the Holiday, addAmericanFederalHolidays and addWeekDaysAsHolidays. The main holiday still missing is Chinese New Year. Copyright 1999-2004 Canadian Mind Products $10 US shareware. Buy online at http://mindprod.com/products.html#HOLIDAYS or send cheques only (sorry, no credit cards) payable to Canadian Mind Products to: HOLIDAYS REGISTRATIONS Roedy Green Canadian Mind Products #327 - 964 Heywood Avenue Victoria, BC V8V 2Y5 (250) 361-9093 May be freely distributed and used for any purpose but military. For more details on the restriction, see http://mindprod.com/roedy.html#NONMILITARY The distributed version is absolutely identical to the registered version, and includes Java source. You may use the code freely in your own programs. You don't need to register multiple copies. Version 1.8 makes it easier to extend the various classes for your own purposes, e.g. to print a calendar of German holidays. version 1.9 improves the JavaDoc. Version 2.0 adds Earth Day. There is an additiontal package of German holidays designed to work in the HolidayCalculator framework available from http://www.applicate.de/freesoftware/holiday/ One typical use embedding in your own program: public class DemoGermanHolidayUtils { public static void main(String[] args) { // 1. Enable calculation from 1995 to 2010 IsHoliday holiday = new IsHoliday(1995, 2010); // 2. Mark weekends as holidays holiday.addWeekendsAsHolidays(); // 3. Add German federal holidays GermanHolidayUtils.addGermanFederalHolidays(holiday); System.out.print("Is May 1st 2002 a holiday: "); System.out.println(holiday.isHoliday( new BigDate(2002, 5, 1))); } }