chromium/third_party/icu/source/i18n/unicode/tzrule.h

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
* Copyright (C) 2007-2008, International Business Machines Corporation and    *
* others. All Rights Reserved.                                                *
*******************************************************************************
*/
#ifndef TZRULE_H
#define TZRULE_H

/**
 * \file 
 * \brief C++ API: Time zone rule classes
 */

#include "unicode/utypes.h"

#if U_SHOW_CPLUSPLUS_API

#if !UCONFIG_NO_FORMATTING

#include "unicode/uobject.h"
#include "unicode/unistr.h"
#include "unicode/dtrule.h"

U_NAMESPACE_BEGIN

/**
 * <code>TimeZoneRule</code> is a class representing a rule for time zone.
 * <code>TimeZoneRule</code> has a set of time zone attributes, such as zone name,
 * raw offset (UTC offset for standard time) and daylight saving time offset.
 * 
 * @stable ICU 3.8
 */
class U_I18N_API TimeZoneRule : public UObject {};

/**
 * <code>InitialTimeZoneRule</code> represents a time zone rule
 * representing a time zone effective from the beginning and
 * has no actual start times.
 * @stable ICU 3.8
 */
class U_I18N_API InitialTimeZoneRule : public TimeZoneRule {};

/**
 * <code>AnnualTimeZoneRule</code> is a class used for representing a time zone
 * rule which takes effect annually.  The calendar system used for the rule is
 * is based on Gregorian calendar
 * 
 * @stable ICU 3.8
 */
class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule {};

/**
 * <code>TimeArrayTimeZoneRule</code> represents a time zone rule whose start times are
 * defined by an array of milliseconds since the standard base time.
 * 
 * @stable ICU 3.8
 */
class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule {};


U_NAMESPACE_END

#endif /* #if !UCONFIG_NO_FORMATTING */

#endif /* U_SHOW_CPLUSPLUS_API */

#endif // TZRULE_H

//eof