udat.h

Go to the documentation of this file.
00001 /*
00002  *******************************************************************************
00003  * Copyright (C) 1996-2008, International Business Machines
00004  * Corporation and others. All Rights Reserved.
00005  *******************************************************************************
00006 */
00007 
00008 #ifndef UDAT_H
00009 #define UDAT_H
00010 
00011 #include "unicode/utypes.h"
00012 
00013 #if !UCONFIG_NO_FORMATTING
00014 
00015 #include "unicode/ucal.h"
00016 #include "unicode/unum.h"
00138 typedef void* UDateFormat;
00139 
00143 typedef enum UDateFormatStyle {
00145     UDAT_FULL,
00147     UDAT_LONG,
00149     UDAT_MEDIUM,
00151     UDAT_SHORT,
00153     UDAT_DEFAULT = UDAT_MEDIUM,
00154 
00156     UDAT_RELATIVE = (1 << 7),
00157     
00158     UDAT_FULL_RELATIVE = UDAT_FULL | UDAT_RELATIVE,
00159         
00160     UDAT_LONG_RELATIVE = UDAT_LONG | UDAT_RELATIVE,
00161     
00162     UDAT_MEDIUM_RELATIVE = UDAT_MEDIUM | UDAT_RELATIVE,
00163     
00164     UDAT_SHORT_RELATIVE = UDAT_SHORT | UDAT_RELATIVE,
00165     
00166     
00168     UDAT_NONE = -1,
00170     UDAT_IGNORE = -2
00171 
00172 } UDateFormatStyle;
00173 
00174 
00205 #define UDAT_MINUTE_SECOND              "ms"
00206 #define UDAT_HOUR24_MINUTE              "Hm"
00207 #define UDAT_HOUR24_MINUTE_SECOND       "Hms"      
00208 #define UDAT_HOUR_MINUTE_SECOND         "hms"
00209 #define UDAT_STANDALONE_MONTH           "LLLL"
00210 #define UDAT_ABBR_STANDALONE_MONTH      "LLL"
00211 #define UDAT_YEAR_QUARTER               "yQQQ"
00212 #define UDAT_YEAR_ABBR_QUARTER          "yQ"
00213 
00219 #define UDAT_HOUR_MINUTE                "hm"
00220 #define UDAT_YEAR                       "y"
00221 #define UDAT_DAY                        "d"
00222 #define UDAT_NUM_MONTH_WEEKDAY_DAY      "MEd"
00223 #define UDAT_YEAR_NUM_MONTH             "yM"              
00224 #define UDAT_NUM_MONTH_DAY              "Md"
00225 #define UDAT_YEAR_NUM_MONTH_WEEKDAY_DAY "yMEd"
00226 #define UDAT_ABBR_MONTH_WEEKDAY_DAY     "MMMEd"
00227 #define UDAT_YEAR_MONTH                 "yMMMM"
00228 #define UDAT_YEAR_ABBR_MONTH            "yMMM"
00229 #define UDAT_MONTH_DAY                  "MMMMd"
00230 #define UDAT_ABBR_MONTH_DAY             "MMMd" 
00231 #define UDAT_MONTH_WEEKDAY_DAY          "MMMMEEEEd"
00232 #define UDAT_YEAR_ABBR_MONTH_WEEKDAY_DAY "yMMMEd" 
00233 #define UDAT_YEAR_MONTH_WEEKDAY_DAY     "yMMMMEEEEd"
00234 #define UDAT_YEAR_MONTH_DAY             "yMMMMd"
00235 #define UDAT_YEAR_ABBR_MONTH_DAY        "yMMMd"
00236 #define UDAT_YEAR_NUM_MONTH_DAY         "yMd"
00237 #define UDAT_NUM_MONTH                  "M"
00238 #define UDAT_ABBR_MONTH                 "MMM"
00239 #define UDAT_MONTH                      "MMMM"
00240 #define UDAT_HOUR_MINUTE_GENERIC_TZ     "hmv"
00241 #define UDAT_HOUR_MINUTE_TZ             "hmz"
00242 #define UDAT_HOUR                       "h"
00243 #define UDAT_HOUR_GENERIC_TZ            "hv"
00244 #define UDAT_HOUR_TZ                    "hz"
00245 
00246 
00252 typedef enum UDateFormatField {
00258     UDAT_ERA_FIELD = 0,
00259 
00265     UDAT_YEAR_FIELD = 1,
00266 
00272     UDAT_MONTH_FIELD = 2,
00273 
00279     UDAT_DATE_FIELD = 3,
00280 
00288     UDAT_HOUR_OF_DAY1_FIELD = 4,
00289 
00297     UDAT_HOUR_OF_DAY0_FIELD = 5,
00298 
00304     UDAT_MINUTE_FIELD = 6,
00305 
00311     UDAT_SECOND_FIELD = 7,
00312 
00318     UDAT_FRACTIONAL_SECOND_FIELD = 8,
00319 
00325     UDAT_DAY_OF_WEEK_FIELD = 9,
00326 
00332     UDAT_DAY_OF_YEAR_FIELD = 10,
00333 
00339     UDAT_DAY_OF_WEEK_IN_MONTH_FIELD = 11,
00340 
00346     UDAT_WEEK_OF_YEAR_FIELD = 12,
00347 
00353     UDAT_WEEK_OF_MONTH_FIELD = 13,
00354 
00360     UDAT_AM_PM_FIELD = 14,
00361 
00369     UDAT_HOUR1_FIELD = 15,
00370 
00378     UDAT_HOUR0_FIELD = 16,
00379 
00386     UDAT_TIMEZONE_FIELD = 17,
00387 
00393     UDAT_YEAR_WOY_FIELD = 18,
00394 
00400     UDAT_DOW_LOCAL_FIELD = 19,
00401 
00407     UDAT_EXTENDED_YEAR_FIELD = 20,
00408 
00414     UDAT_JULIAN_DAY_FIELD = 21,
00415 
00421     UDAT_MILLISECONDS_IN_DAY_FIELD = 22,
00422 
00429     UDAT_TIMEZONE_RFC_FIELD = 23,
00430 
00436     UDAT_TIMEZONE_GENERIC_FIELD = 24,
00443     UDAT_STANDALONE_DAY_FIELD = 25,
00444     
00451     UDAT_STANDALONE_MONTH_FIELD = 26,
00452 
00460     UDAT_QUARTER_FIELD = 27,
00461 
00469     UDAT_STANDALONE_QUARTER_FIELD = 28,
00470 
00476     UDAT_TIMEZONE_SPECIAL_FIELD = 29,
00477 
00486     UDAT_FIELD_COUNT = 30
00487 
00488 } UDateFormatField;
00489 
00509 U_STABLE UDateFormat* U_EXPORT2 
00510 udat_open(UDateFormatStyle  timeStyle,
00511           UDateFormatStyle  dateStyle,
00512           const char        *locale,
00513           const UChar       *tzID,
00514           int32_t           tzIDLength,
00515           const UChar       *pattern,
00516           int32_t           patternLength,
00517           UErrorCode        *status);
00518 
00519 
00526 U_STABLE void U_EXPORT2 
00527 udat_close(UDateFormat* format);
00528 
00537 U_STABLE UDateFormat* U_EXPORT2 
00538 udat_clone(const UDateFormat *fmt,
00539        UErrorCode *status);
00540 
00559 U_STABLE int32_t U_EXPORT2 
00560 udat_format(    const    UDateFormat*    format,
00561                         UDate           dateToFormat,
00562                         UChar*          result,
00563                         int32_t         resultLength,
00564                         UFieldPosition* position,
00565                         UErrorCode*     status);
00566 
00580 U_STABLE UDate U_EXPORT2 
00581 udat_parse(    const    UDateFormat*    format,
00582             const    UChar*          text,
00583                     int32_t         textLength,
00584                     int32_t         *parsePos,
00585                     UErrorCode      *status);
00586 
00600 U_STABLE void U_EXPORT2 
00601 udat_parseCalendar(const    UDateFormat*    format,
00602                             UCalendar*      calendar,
00603                    const    UChar*          text,
00604                             int32_t         textLength,
00605                             int32_t         *parsePos,
00606                             UErrorCode      *status);
00607 
00617 U_STABLE UBool U_EXPORT2 
00618 udat_isLenient(const UDateFormat* fmt);
00619 
00629 U_STABLE void U_EXPORT2 
00630 udat_setLenient(    UDateFormat*    fmt,
00631                     UBool          isLenient);
00632 
00642 U_STABLE const UCalendar* U_EXPORT2 
00643 udat_getCalendar(const UDateFormat* fmt);
00644 
00654 U_STABLE void U_EXPORT2 
00655 udat_setCalendar(            UDateFormat*    fmt,
00656                     const   UCalendar*      calendarToSet);
00657 
00667 U_STABLE const UNumberFormat* U_EXPORT2 
00668 udat_getNumberFormat(const UDateFormat* fmt);
00669 
00679 U_STABLE void U_EXPORT2 
00680 udat_setNumberFormat(            UDateFormat*    fmt,
00681                         const   UNumberFormat*  numberFormatToSet);
00682 
00692 U_STABLE const char* U_EXPORT2 
00693 udat_getAvailable(int32_t index);
00694 
00703 U_STABLE int32_t U_EXPORT2 
00704 udat_countAvailable(void);
00705 
00716 U_STABLE UDate U_EXPORT2 
00717 udat_get2DigitYearStart(    const   UDateFormat     *fmt,
00718                                     UErrorCode      *status);
00719 
00730 U_STABLE void U_EXPORT2 
00731 udat_set2DigitYearStart(    UDateFormat     *fmt,
00732                             UDate           d,
00733                             UErrorCode      *status);
00734 
00747 U_STABLE int32_t U_EXPORT2 
00748 udat_toPattern(    const   UDateFormat     *fmt,
00749                         UBool          localized,
00750                         UChar           *result,
00751                         int32_t         resultLength,
00752                         UErrorCode      *status);
00753 
00764 U_STABLE void U_EXPORT2 
00765 udat_applyPattern(            UDateFormat     *format,
00766                             UBool          localized,
00767                     const   UChar           *pattern,
00768                             int32_t         patternLength);
00769 
00774 typedef enum UDateFormatSymbolType {
00776     UDAT_ERAS,
00778     UDAT_MONTHS,
00780     UDAT_SHORT_MONTHS,
00782     UDAT_WEEKDAYS,
00784     UDAT_SHORT_WEEKDAYS,
00786     UDAT_AM_PMS,
00788     UDAT_LOCALIZED_CHARS,
00790     UDAT_ERA_NAMES,
00792     UDAT_NARROW_MONTHS,
00794     UDAT_NARROW_WEEKDAYS,
00796     UDAT_STANDALONE_MONTHS,
00797     UDAT_STANDALONE_SHORT_MONTHS,
00798     UDAT_STANDALONE_NARROW_MONTHS,
00800     UDAT_STANDALONE_WEEKDAYS,
00801     UDAT_STANDALONE_SHORT_WEEKDAYS,
00802     UDAT_STANDALONE_NARROW_WEEKDAYS,
00804     UDAT_QUARTERS,
00806     UDAT_SHORT_QUARTERS,
00808     UDAT_STANDALONE_QUARTERS,
00809     UDAT_STANDALONE_SHORT_QUARTERS
00810 
00811 } UDateFormatSymbolType;
00812 
00813 struct UDateFormatSymbols;
00818 typedef struct UDateFormatSymbols UDateFormatSymbols;
00819 
00836 U_STABLE int32_t U_EXPORT2 
00837 udat_getSymbols(const   UDateFormat             *fmt,
00838                         UDateFormatSymbolType   type,
00839                         int32_t                 index,
00840                         UChar                   *result,
00841                         int32_t                 resultLength,
00842                         UErrorCode              *status);
00843 
00856 U_STABLE int32_t U_EXPORT2 
00857 udat_countSymbols(    const    UDateFormat                *fmt,
00858                             UDateFormatSymbolType    type);
00859 
00875 U_STABLE void U_EXPORT2 
00876 udat_setSymbols(    UDateFormat             *format,
00877                     UDateFormatSymbolType   type,
00878                     int32_t                 index,
00879                     UChar                   *value,
00880                     int32_t                 valueLength,
00881                     UErrorCode              *status);
00882 
00892 U_STABLE const char* U_EXPORT2
00893 udat_getLocaleByType(const UDateFormat *fmt,
00894                      ULocDataLocaleType type,
00895                      UErrorCode* status); 
00896 
00897 #endif /* #if !UCONFIG_NO_FORMATTING */
00898 
00899 #endif

Generated on Thu Jan 15 11:25:49 2009 for ICU 4.0.1 by  doxygen 1.4.7