blob: f66ae4c52367f52147dd35be0f5c816a1e6c8f54 [file] [log] [blame]
/*
*******************************************************************************
* Copyright (C) 1996-2000, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
* $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/dev/test/calendar/HolidayTest.java,v $
* $Date: 2002/08/07 17:04:42 $
* $Revision: 1.1 $
*
*****************************************************************************************
*/
package com.ibm.icu.dev.test.calendar;
import java.util.Date;
import java.util.Locale;
import com.ibm.icu.dev.test.TestFmwk;
import com.ibm.icu.impl.LocaleUtility;
import com.ibm.icu.text.DateFormat;
import com.ibm.icu.util.Calendar;
import com.ibm.icu.util.GregorianCalendar;
import com.ibm.icu.util.Holiday;
import com.ibm.icu.util.TimeZone;
/**
* Tests for the <code>Holiday</code> class.
*/
public class HolidayTest extends TestFmwk {
public static void main(String args[]) throws Exception {
new HolidayTest().run(args);
}
static final Calendar cal = new GregorianCalendar(1, 0, 1);
static final Date longTimeAgo = cal.getTime();
static final Date now = new Date();
static final long awhile = 3600L * 24 * 28; // 28 days
public void TestAPI() {
{
// getHolidays
Holiday[] holidays = Holiday.getHolidays();
exerciseHolidays(holidays, Locale.getDefault());
}
{
// getHolidays(Locale)
String[] localeNames = {
"en_US", "da", "da_DK", "de", "de_AT", "de_DE", "el", "el_GR",
"en", "en_CA", "en_GB", "es", "es_MX", "fr", "fr_CA", "fr_FR",
"it", "it_IT", "iw", "iw_IL", "ja", "ja_JP",
};
for (int i=0; i < localeNames.length; ++i) {
Locale locale = LocaleUtility.getLocaleFromName(localeNames[i]);
Holiday[] holidays = Holiday.getHolidays(locale);
exerciseHolidays(holidays, locale);
}
}
}
void exerciseHolidays(Holiday[] holidays, Locale locale) {
for (int i = 0; i < holidays.length; ++i) {
exerciseHoliday(holidays[i], locale);
}
}
void exerciseHoliday(Holiday h, Locale locale) {
logln("holiday: " + h.getDisplayName());
logln("holiday in " + locale + ": " + h.getDisplayName(locale));
Date first = h.firstAfter(longTimeAgo);
logln("firstAfter: " + longTimeAgo + " is " + first);
if (first == null) {
first = longTimeAgo;
}
first.setTime(first.getTime() + awhile);
Date second = h.firstBetween(first, now);
logln("firstBetween: " + first + " and " + now + " is " + second);
if (second == null) {
second = now;
}
logln("is on " + first + ": " + h.isOn(first));
logln("is on " + now + ": " + h.isOn(now));
logln("is between " + first + " and " + now + ": " + h.isBetween(first, now));
logln("is between " + first + " and " + second + ": " + h.isBetween(first, second));
logln("rule: " + h.getRule().toString());
h.setRule(h.getRule());
}
}