16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************** 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Copyright (C) 1997-2013, International Business Machines 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Corporation and others. All Rights Reserved. 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************** 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* File DTFMTSYM.H 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Modification History: 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Date Name Description 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 02/19/97 aliu Converted from java. 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 07/21/98 stephen Added getZoneIndex() 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Changed to match C++ conventions 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************** 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/ 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef DTFMTSYM_H 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define DTFMTSYM_H 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/calendar.h" 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/uobject.h" 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/locid.h" 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/udat.h" 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/ures.h" 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \file 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \brief C++ API: Symbols for formatting dates. 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_BEGIN 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* forward declaration */ 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass SimpleDateFormat; 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass Hashtable; 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateFormatSymbols is a public class for encapsulating localizable date-time 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * formatting data -- including timezone data. DateFormatSymbols is used by 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateFormat and SimpleDateFormat. 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Rather than first creating a DateFormatSymbols to get a date-time formatter 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * by using a SimpleDateFormat constructor, clients are encouraged to create a 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date-time formatter using the getTimeInstance(), getDateInstance(), or 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * getDateTimeInstance() method in DateFormat. Each of these methods can return a 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date/time formatter initialized with a default format pattern along with the 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * date-time formatting data for a given or default locale. After a formatter is 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * created, clients may modify the format pattern using the setPattern function 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * as so desired. For more information on using these formatter factory 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * functions, see DateFormat. 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If clients decide to create a date-time formatter with a particular format 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern and locale, they can do so with new SimpleDateFormat(aPattern, 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * new DateFormatSymbols(aLocale)). This will load the appropriate date-time 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * formatting data from the locale. 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateFormatSymbols objects are clonable. When clients obtain a 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateFormatSymbols object, they can feel free to modify the date-time 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * formatting data as necessary. For instance, clients can 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * replace the localized date-time format pattern characters with the ones that 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * they feel easy to remember. Or they can change the representative cities 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * originally picked by default to using their favorite ones. 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DateFormatSymbols are not expected to be subclassed. Data for a calendar is 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * loaded out of resource bundles. The 'type' parameter indicates the type of 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * calendar, for example, "gregorian" or "japanese". If the type is not gregorian 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (or NULL, or an empty string) then the type is appended to the resource name, 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for example, 'Eras_japanese' instead of 'Eras'. If the resource 'Eras_japanese' did 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * not exist (even in root), then this class will fall back to just 'Eras', that is, 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gregorian data. Therefore, the calendar implementor MUST ensure that the root 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * locale at least contains any resources that are to be particularized for the 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * calendar type. 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass U_I18N_API DateFormatSymbols : public UObject { 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a DateFormatSymbols object by loading format data from 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * resources for the default locale, in the default calendar (Gregorian). 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * NOTE: This constructor will never fail; if it cannot get resource 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * data for the default locale, it will return a last-resort object 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * based on hard-coded strings. 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Status code. Failure 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * results if the resources for the default cannot be 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * found or cannot be loaded 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols(UErrorCode& status); 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a DateFormatSymbols object by loading format data from 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * resources for the given locale, in the default calendar (Gregorian). 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale Locale to load format data from. 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Status code. Failure 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * results if the resources for the locale cannot be 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * found or cannot be loaded 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols(const Locale& locale, 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_INTERNAL_API 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a DateFormatSymbols object by loading format data from 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * resources for the default locale, in the default calendar (Gregorian). 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <P> 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * NOTE: This constructor will never fail; if it cannot get resource 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * data for the default locale, it will return a last-resort object 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * based on hard-coded strings. 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param type Type of calendar (as returned by Calendar::getType). 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Will be used to access the correct set of strings. 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (NULL or empty string defaults to "gregorian".) 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Status code. Failure 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * results if the resources for the default cannot be 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * found or cannot be loaded 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols(const char *type, UErrorCode& status); 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Construct a DateFormatSymbols object by loading format data from 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * resources for the given locale, in the default calendar (Gregorian). 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale Locale to load format data from. 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param type Type of calendar (as returned by Calendar::getType). 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Will be used to access the correct set of strings. 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (NULL or empty string defaults to "gregorian".) 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Status code. Failure 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * results if the resources for the locale cannot be 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * found or cannot be loaded 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols(const Locale& locale, 1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const char *type, 1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* U_HIDE_INTERNAL_API */ 1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy constructor. 1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols(const DateFormatSymbols&); 1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Assignment operator. 1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols& operator=(const DateFormatSymbols&); 1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Destructor. This is nonvirtual because this class is not designed to be 1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * subclassed. 1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual ~DateFormatSymbols(); 1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return true if another object is semantically equal to this one. 1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param other the DateFormatSymbols object to be compared with. 1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if other is semantically equal to this. 1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool operator==(const DateFormatSymbols& other) const; 1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return true if another object is semantically unequal to this one. 1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param other the DateFormatSymbols object to be compared with. 1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if other is semantically unequal to this. 1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool operator!=(const DateFormatSymbols& other) const { return !operator==(other); } 1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets abbreviated era strings. For example: "AD" and "BC". 1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the era strings. 1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getEras(int32_t& count) const; 1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets abbreviated era strings. For example: "AD" and "BC". 1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param eras Array of era strings (DateFormatSymbols retains ownership.) 1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setEras(const UnicodeString* eras, int32_t count); 1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets era name strings. For example: "Anno Domini" and "Before Christ". 2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the era name strings. 2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.4 2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getEraNames(int32_t& count) const; 2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets era name strings. For example: "Anno Domini" and "Before Christ". 2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param eraNames Array of era name strings (DateFormatSymbols retains ownership.) 2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setEraNames(const UnicodeString* eraNames, int32_t count); 2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets narrow era strings. For example: "A" and "B". 2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the narrow era strings. 2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getNarrowEras(int32_t& count) const; 2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets narrow era strings. For example: "A" and "B". 2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param narrowEras Array of narrow era strings (DateFormatSymbols retains ownership.) 2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setNarrowEras(const UnicodeString* narrowEras, int32_t count); 2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets month strings. For example: "January", "February", etc. 2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the month strings. (DateFormatSymbols retains ownership.) 2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getMonths(int32_t& count) const; 2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets month strings. For example: "January", "February", etc. 2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param months the new month strings. (not adopted; caller retains ownership) 2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setMonths(const UnicodeString* months, int32_t count); 2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets short month strings. For example: "Jan", "Feb", etc. 2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the short month strings. (DateFormatSymbols retains ownership.) 2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getShortMonths(int32_t& count) const; 2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets short month strings. For example: "Jan", "Feb", etc. 2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param shortMonths the new short month strings. (not adopted; caller retains ownership) 2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setShortMonths(const UnicodeString* shortMonths, int32_t count); 2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Selector for date formatting context 2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 2716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum DtContextType { 2736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org FORMAT, 2746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org STANDALONE, 2756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DT_CONTEXT_COUNT 2766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 2776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Selector for date formatting width 2806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 2816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum DtWidthType { 2836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ABBREVIATED, 2846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org WIDE, 2856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NARROW, 2866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_DRAFT_API 2876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Short width is currently only supported for weekday names. 2896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @draft ICU 51 2906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SHORT, 2926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* U_HIDE_DRAFT_API */ 2936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DT_WIDTH_COUNT = 4 2966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 2976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets month strings by width and context. For example: "January", "February", etc. 3006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The formatting context, either FORMAT or STANDALONE 3026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW. 3036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the month strings. (DateFormatSymbols retains ownership.) 3046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.4 3056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getMonths(int32_t& count, DtContextType context, DtWidthType width) const; 3076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets month strings by width and context. For example: "January", "February", etc. 3106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 3116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param months The new month strings. (not adopted; caller retains ownership) 3126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The formatting context, either FORMAT or STANDALONE 3146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW. 3156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 3166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setMonths(const UnicodeString* months, int32_t count, DtContextType context, DtWidthType width); 3186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets wide weekday strings. For example: "Sunday", "Monday", etc. 3216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the weekday strings. (DateFormatSymbols retains ownership.) 3236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 3246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getWeekdays(int32_t& count) const; 3266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets wide weekday strings. For example: "Sunday", "Monday", etc. 3306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param weekdays the new weekday strings. (not adopted; caller retains ownership) 3316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 3336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setWeekdays(const UnicodeString* weekdays, int32_t count); 3356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets abbreviated weekday strings. For example: "Sun", "Mon", etc. (Note: The method name is 3386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * misleading; it does not get the CLDR-style "short" weekday strings, e.g. "Su", "Mo", etc.) 3396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the abbreviated weekday strings. (DateFormatSymbols retains ownership.) 3416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 3426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getShortWeekdays(int32_t& count) const; 3446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets abbreviated weekday strings. For example: "Sun", "Mon", etc. (Note: The method name is 3476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * misleading; it does not set the CLDR-style "short" weekday strings, e.g. "Su", "Mo", etc.) 3486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param abbrevWeekdays the new abbreviated weekday strings. (not adopted; caller retains ownership) 3496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 3516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setShortWeekdays(const UnicodeString* abbrevWeekdays, int32_t count); 3536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets weekday strings by width and context. For example: "Sunday", "Monday", etc. 3566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The formatting context, either FORMAT or STANDALONE 3586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param width The width of returned strings, either WIDE, ABBREVIATED, SHORT, or NARROW 3596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the month strings. (DateFormatSymbols retains ownership.) 3606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.4 3616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getWeekdays(int32_t& count, DtContextType context, DtWidthType width) const; 3636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets weekday strings by width and context. For example: "Sunday", "Monday", etc. 3666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param weekdays The new weekday strings. (not adopted; caller retains ownership) 3676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The formatting context, either FORMAT or STANDALONE 3696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param width The width of returned strings, either WIDE, ABBREVIATED, SHORT, or NARROW 3706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 3716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setWeekdays(const UnicodeString* weekdays, int32_t count, DtContextType context, DtWidthType width); 3736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets quarter strings by width and context. For example: "1st Quarter", "2nd Quarter", etc. 3766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The formatting context, either FORMAT or STANDALONE 3786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param width The width of returned strings, either WIDE or ABBREVIATED. There 3796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are no NARROW quarters. 3806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the quarter strings. (DateFormatSymbols retains ownership.) 3816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 3826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getQuarters(int32_t& count, DtContextType context, DtWidthType width) const; 3846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets quarter strings by width and context. For example: "1st Quarter", "2nd Quarter", etc. 3876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 3886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param quarters The new quarter strings. (not adopted; caller retains ownership) 3896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 3906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param context The formatting context, either FORMAT or STANDALONE 3916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param width The width of returned strings, either WIDE or ABBREVIATED. There 3926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are no NARROW quarters. 3936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 3.6 3946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 3956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setQuarters(const UnicodeString* quarters, int32_t count, DtContextType context, DtWidthType width); 3966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 3976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 3986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets AM/PM strings. For example: "AM" and "PM". 3996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 4006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the weekday strings. (DateFormatSymbols retains ownership.) 4016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 4026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getAmPmStrings(int32_t& count) const; 4046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets ampm strings. For example: "AM" and "PM". 4076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param ampms the new ampm strings. (not adopted; caller retains ownership) 4086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array. 4096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 4106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setAmPmStrings(const UnicodeString* ampms, int32_t count); 4126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_INTERNAL_API 4146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Somewhat temporary constants for leap month pattern types, adequate for supporting 4166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * just leap month patterns as needed for Chinese lunar calendar. 4176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Eventually we will add full support for different month pattern types (needed for 4186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * other calendars such as Hindu) at which point this approach will be replaced by a 4196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * more complete approach. 4206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 4216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum EMonthPatternType 4236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org { 4246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternFormatWide, 4256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternFormatAbbrev, 4266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternFormatNarrow, 4276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternStandaloneWide, 4286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternStandaloneAbbrev, 4296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternStandaloneNarrow, 4306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kLeapMonthPatternNumeric, 4316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kMonthPatternsCount 4326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 4336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Somewhat temporary function for getting complete set of leap month patterns for all 4366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * contexts & widths, indexed by EMonthPatternType values. Returns NULL if calendar 4376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * does not have leap month patterns. Note, there is currently no setter for this. 4386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Eventually we will add full support for different month pattern types (needed for 4396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * other calendars such as Hindu) at which point this approach will be replaced by a 4406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * more complete approach. 4416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count Filled in with length of the array (may be 0). 4426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The leap month patterns (DateFormatSymbols retains ownership). 4436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * May be NULL if there are no leap month patterns for this calendar. 4446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 4456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* getLeapMonthPatterns(int32_t& count) const; 4476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* U_HIDE_INTERNAL_API */ 4496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef U_HIDE_DEPRECATED_API 4516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets timezone strings. These strings are stored in a 2-dimensional array. 4536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param rowCount Output param to receive number of rows. 4546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param columnCount Output param to receive number of columns. 4556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The timezone strings as a 2-d array. (DateFormatSymbols retains ownership.) 4566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @deprecated ICU 3.6 4576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString** getZoneStrings(int32_t& rowCount, int32_t& columnCount) const; 4596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* U_HIDE_DEPRECATED_API */ 4606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets timezone strings. These strings are stored in a 2-dimensional array. 4636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p><b>Note:</b> SimpleDateFormat no longer use the zone strings stored in 4646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * a DateFormatSymbols. Therefore, the time zone strings set by this mthod 4656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * have no effects in an instance of SimpleDateFormat for formatting time 4666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zones. 4676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param strings The timezone strings as a 2-d array to be copied. (not adopted; caller retains ownership) 4686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param rowCount The number of rows (count of first index). 4696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param columnCount The number of columns (count of second index). 4706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 4716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setZoneStrings(const UnicodeString* const* strings, int32_t rowCount, int32_t columnCount); 4736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get the non-localized date-time pattern characters. 4766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return the non-localized date-time pattern characters 4776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 4786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static const UChar * U_EXPORT2 getPatternUChars(void); 4806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets localized date-time pattern characters. For example: 'u', 't', etc. 4836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p> 4846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note: ICU no longer provides localized date-time pattern characters for a locale 4856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * starting ICU 3.8. This method returns the non-localized date-time pattern 4866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * characters unless user defined localized data is set by setLocalPatternChars. 4876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param result Output param which will receive the localized date-time pattern characters. 4886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return A reference to 'result'. 4896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 4906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& getLocalPatternChars(UnicodeString& result) const; 4926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 4936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 4946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets localized date-time pattern characters. For example: 'u', 't', etc. 4956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param newLocalPatternChars the new localized date-time 4966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * pattern characters. 4976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.0 4986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 4996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setLocalPatternChars(const UnicodeString& newLocalPatternChars); 5006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the locale for this object. Two flavors are available: 5036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * valid and actual locale. 5046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.8 5056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const; 5076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constants for capitalization context usage types. 5106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 5116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum ECapitalizationContextUsageType 5136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org { 5146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageOther, 5156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageMonthFormat, /* except narrow */ 5166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageMonthStandalone, /* except narrow */ 5176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageMonthNarrow, 5186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageDayFormat, /* except narrow */ 5196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageDayStandalone, /* except narrow */ 5206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageDayNarrow, 5216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageEraWide, 5226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageEraAbbrev, 5236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageEraNarrow, 5246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageZoneLong, 5256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageZoneShort, 5266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageMetazoneLong, 5276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageMetazoneShort, 5286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kCapContextUsageTypeCount 5296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 5306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU "poor man's RTTI", returns a UClassID for the actual class. 5336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 5346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2 5356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UClassID getDynamicClassID() const; 5376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU "poor man's RTTI", returns a UClassID for this class. 5406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 5416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 2.2 5426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UClassID U_EXPORT2 getStaticClassID(); 5446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 5466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org friend class SimpleDateFormat; 5486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org friend class DateFormatSymbolsSingleSetter; // see udat.cpp 5496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Abbreviated era strings. For example: "AD" and "BC". 5526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fEras; 5546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fErasCount; 5556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Era name strings. For example: "Anno Domini" and "Before Christ". 5586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fEraNames; 5606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fEraNamesCount; 5616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Narrow era strings. For example: "A" and "B". 5646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fNarrowEras; 5666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fNarrowErasCount; 5676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Month strings. For example: "January", "February", etc. 5706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fMonths; 5726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fMonthsCount; 5736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Short month strings. For example: "Jan", "Feb", etc. 5766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fShortMonths; 5786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fShortMonthsCount; 5796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Narrow month strings. For example: "J", "F", etc. 5826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fNarrowMonths; 5846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fNarrowMonthsCount; 5856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Standalone Month strings. For example: "January", "February", etc. 5886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneMonths; 5906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneMonthsCount; 5916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Standalone Short month strings. For example: "Jan", "Feb", etc. 5946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 5956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneShortMonths; 5966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneShortMonthsCount; 5976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 5986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 5996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Standalone Narrow month strings. For example: "J", "F", etc. 6006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneNarrowMonths; 6026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneNarrowMonthsCount; 6036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style format wide weekday strings. For example: "Sunday", "Monday", etc. 6066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fWeekdays; 6086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fWeekdaysCount; 6096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style format abbreviated (not short) weekday strings. For example: "Sun", "Mon", etc. 6126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fShortWeekdays; 6146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fShortWeekdaysCount; 6156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style format short weekday strings. For example: "Su", "Mo", etc. 6186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fShorterWeekdays; 6206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fShorterWeekdaysCount; 6216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style format narrow weekday strings. For example: "S", "M", etc. 6246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fNarrowWeekdays; 6266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fNarrowWeekdaysCount; 6276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style standalone wide weekday strings. For example: "Sunday", "Monday", etc. 6306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneWeekdays; 6326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneWeekdaysCount; 6336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style standalone abbreviated (not short) weekday strings. For example: "Sun", "Mon", etc. 6366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneShortWeekdays; 6386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneShortWeekdaysCount; 6396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CLDR-style standalone short weekday strings. For example: "Su", "Mo", etc. 6426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneShorterWeekdays; 6446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneShorterWeekdaysCount; 6456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Standalone Narrow weekday strings. For example: "Sun", "Mon", etc. 6486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fStandaloneNarrowWeekdays; 6506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneNarrowWeekdaysCount; 6516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Ampm strings. For example: "AM" and "PM". 6546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fAmPms; 6566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fAmPmsCount; 6576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Quarter strings. For example: "1st quarter", "2nd quarter", etc. 6606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString *fQuarters; 6626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fQuartersCount; 6636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Short quarters. For example: "Q1", "Q2", etc. 6666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString *fShortQuarters; 6686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fShortQuartersCount; 6696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Standalone quarter strings. For example: "1st quarter", "2nd quarter", etc. 6726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString *fStandaloneQuarters; 6746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneQuartersCount; 6756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Standalone short quarter strings. For example: "Q1", "Q2", etc. 6786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString *fStandaloneShortQuarters; 6806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fStandaloneShortQuartersCount; 6816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * All leap month patterns, for example "{0}bis". 6846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString *fLeapMonthPatterns; 6866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fLeapMonthPatternsCount; 6876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * (Format) Short cyclic year names, for example: "jia-zi", "yi-chou", ... "gui-hai" 6906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 6916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString* fShortYearNames; 6926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fShortYearNamesCount; 6936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 6946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 6956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Localized names of time zones in this locale. This is a 6966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * two-dimensional array of strings of size n by m, 6976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * where m is at least 5 and up to 7. Each of the n rows is an 6986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * entry containing the localized names for a single TimeZone. 6996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Each such row contains (with i ranging from 0..n-1): 7016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][0] - time zone ID 7036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: America/Los_Angeles 7046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][1] - long name of zone in standard time 7056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: Pacific Standard Time 7066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][2] - short name of zone in standard time 7076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: PST 7086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][3] - long name of zone in daylight savings time 7096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: Pacific Daylight Time 7106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][4] - short name of zone in daylight savings time 7116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: PDT 7126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][5] - location name of zone 7136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: United States (Los Angeles) 7146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][6] - long generic name of zone 7156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: Pacific Time 7166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zoneStrings[i][7] - short generic of zone 7176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example: PT 7186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The zone ID is not localized; it corresponds to the ID 7206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * value associated with a system time zone object. All other entries 7216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * are localized names. If a zone does not implement daylight savings 7226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * time, the daylight savings time names are ignored. 7236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Note:CLDR 1.5 introduced metazone and its historical mappings. 7256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This simple two-dimensional array is no longer sufficient to represent 7266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * localized names and its historic changes. Since ICU 3.8.1, localized 7276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * zone names extracted from ICU locale data is stored in a ZoneStringFormat 7286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * instance. But we still need to support the old way of customizing 7296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * localized zone names, so we keep this field for the purpose. 7306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString **fZoneStrings; // Zone string array set by setZoneStrings 7326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString **fLocaleZoneStrings; // Zone string array created by the locale 7336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fZoneStringsRowCount; 7346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t fZoneStringsColCount; 7356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Locale fZSFLocale; // Locale used for getting ZoneStringFormat 7376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Localized date-time pattern characters. For example: use 'u' as 'y'. 7406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString fLocalPatternChars; 7426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Capitalization transforms. For each usage type, the first array element indicates 7456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * whether to titlecase for uiListOrMenu context, the second indicates whether to 7466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * titlecase for stand-alone context. 7476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool fCapitalization[kCapContextUsageTypeCount][2]; 7496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 7516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** valid/actual locale information 7526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * these are always ICU locales, so the length should not be a problem 7536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org char validLocale[ULOC_FULLNAME_CAPACITY]; 7556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org char actualLocale[ULOC_FULLNAME_CAPACITY]; 7566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormatSymbols(); // default constructor not implemented 7586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Called by the constructors to actually load data from the resources 7616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale The locale to get symbols for. 7636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param type Calendar Type (as from Calendar::getType()) 7646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status Input/output parameter, set to success or 7656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * failure code upon return. 7666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param useLastResortData determine if use last resort data 7676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initializeData(const Locale& locale, const char *type, UErrorCode& status, UBool useLastResortData = FALSE); 7696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy or alias an array in another object, as appropriate. 7726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dstArray the copy destination array. 7746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dstCount fill in with the lenth of 'dstArray'. 7756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param srcArray the source array to be copied. 7766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param srcCount the length of items to be copied from the 'srcArray'. 7776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void assignArray(UnicodeString*& dstArray, 7796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t& dstCount, 7806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* srcArray, 7816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t srcCount); 7826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return true if the given arrays' contents are equal, or if the arrays are 7856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * identical (pointers are equal). 7866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 7876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param array1 one array to be compared with. 7886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param array2 another array to be compared with. 7896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param count the length of items to be copied. 7906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if the given arrays' contents are equal, or if the arrays are 7916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * identical (pointers are equal). 7926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 7936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool arrayCompare(const UnicodeString* array1, 7946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString* array2, 7956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t count); 7966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 7976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 7986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Create a copy, in fZoneStrings, of the given zone strings array. The 7996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * member variables fZoneStringsRowCount and fZoneStringsColCount should be 8006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * set already by the caller. 8016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void createZoneStrings(const UnicodeString *const * otherStrings); 8036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Delete all the storage owned by this object. 8066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void dispose(void); 8086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy all of the other's data to this. 8116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param other the object to be copied. 8126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void copyData(const DateFormatSymbols& other); 8146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Create zone strings array by locale if not yet available 8176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initZoneStringsArray(void); 8196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Delete just the zone strings. 8226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void disposeZoneStrings(void); 8246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the date format field index of the pattern character c, 8276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or UDAT_FIELD_COUNT if c is not a pattern character. 8286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UDateFormatField U_EXPORT2 getPatternCharIndex(UChar c); 8306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns TRUE if f (with its pattern character repeated count times) is a numeric field. 8336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool U_EXPORT2 isNumericField(UDateFormatField f, int32_t count); 8356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 8376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns TRUE if c (repeated count times) is the pattern character for a numeric field. 8386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 8396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UBool U_EXPORT2 isNumericPatternChar(UChar c, int32_t count); 8406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 8416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_END 8436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */ 8456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 8466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif // _DTFMTSYM 8476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//eof 848