| /* |
| ******************************************************************************* |
| * 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()); |
| } |
| } |