00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __UDATPG_H__
00018 #define __UDATPG_H__
00019
00020 #include "unicode/utypes.h"
00021 #include "unicode/uenum.h"
00022
00044 typedef void *UDateTimePatternGenerator;
00045
00046 #ifndef U_HIDE_DRAFT_API
00047
00054 typedef enum UDateTimePatternField {
00056 UDATPG_ERA_FIELD,
00058 UDATPG_YEAR_FIELD,
00060 UDATPG_QUARTER_FIELD,
00062 UDATPG_MONTH_FIELD,
00064 UDATPG_WEEK_OF_YEAR_FIELD,
00066 UDATPG_WEEK_OF_MONTH_FIELD,
00068 UDATPG_WEEKDAY_FIELD,
00070 UDATPG_DAY_OF_YEAR_FIELD,
00072 UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD,
00074 UDATPG_DAY_FIELD,
00076 UDATPG_DAYPERIOD_FIELD,
00078 UDATPG_HOUR_FIELD,
00080 UDATPG_MINUTE_FIELD,
00082 UDATPG_SECOND_FIELD,
00084 UDATPG_FRACTIONAL_SECOND_FIELD,
00086 UDATPG_ZONE_FIELD,
00088 UDATPG_FIELD_COUNT
00089 } UDateTimePatternField;
00090
00095 typedef enum UDateTimePatternConflict {
00097 UDATPG_NO_CONFLICT,
00099 UDATPG_BASE_CONFLICT,
00101 UDATPG_CONFLICT,
00103 UDATPG_CONFLICT_COUNT
00104 } UDateTimePatternConflict;
00105
00106 #endif
00107
00116 U_DRAFT UDateTimePatternGenerator * U_EXPORT2
00117 udatpg_open(const char *locale, UErrorCode *pErrorCode);
00118
00126 U_DRAFT UDateTimePatternGenerator * U_EXPORT2
00127 udatpg_openEmpty(UErrorCode *pErrorCode);
00128
00134 U_DRAFT void U_EXPORT2
00135 udatpg_close(UDateTimePatternGenerator *dtpg);
00136
00145 U_DRAFT UDateTimePatternGenerator * U_EXPORT2
00146 udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
00147
00171 U_DRAFT int32_t U_EXPORT2
00172 udatpg_getBestPattern(UDateTimePatternGenerator *dtpg,
00173 const UChar *skeleton, int32_t length,
00174 UChar *bestPattern, int32_t capacity,
00175 UErrorCode *pErrorCode);
00176
00197 U_DRAFT int32_t U_EXPORT2
00198 udatpg_getSkeleton(UDateTimePatternGenerator *dtpg,
00199 const UChar *pattern, int32_t length,
00200 UChar *skeleton, int32_t capacity,
00201 UErrorCode *pErrorCode);
00202
00226 U_DRAFT int32_t U_EXPORT2
00227 udatpg_getBaseSkeleton(UDateTimePatternGenerator *dtpg,
00228 const UChar *pattern, int32_t length,
00229 UChar *baseSkeleton, int32_t capacity,
00230 UErrorCode *pErrorCode);
00231
00256 U_DRAFT UDateTimePatternConflict U_EXPORT2
00257 udatpg_addPattern(UDateTimePatternGenerator *dtpg,
00258 const UChar *pattern, int32_t patternLength,
00259 UBool override,
00260 UChar *conflictingPattern, int32_t capacity, int32_t *pLength,
00261 UErrorCode *pErrorCode);
00262
00283 U_DRAFT void U_EXPORT2
00284 udatpg_setAppendItemFormat(UDateTimePatternGenerator *dtpg,
00285 UDateTimePatternField field,
00286 const UChar *value, int32_t length);
00287
00298 U_DRAFT const UChar * U_EXPORT2
00299 udatpg_getAppendItemFormat(const UDateTimePatternGenerator *dtpg,
00300 UDateTimePatternField field,
00301 int32_t *pLength);
00302
00316 U_DRAFT void U_EXPORT2
00317 udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg,
00318 UDateTimePatternField field,
00319 const UChar *value, int32_t length);
00320
00331 U_DRAFT const UChar * U_EXPORT2
00332 udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg,
00333 UDateTimePatternField field,
00334 int32_t *pLength);
00335
00357 U_DRAFT void U_EXPORT2
00358 udatpg_setDateTimeFormat(const UDateTimePatternGenerator *dtpg,
00359 const UChar *dtFormat, int32_t length);
00360
00368 U_DRAFT const UChar * U_EXPORT2
00369 udatpg_getDateTimeFormat(const UDateTimePatternGenerator *dtpg,
00370 int32_t *pLength);
00371
00385 U_DRAFT void U_EXPORT2
00386 udatpg_setDecimal(UDateTimePatternGenerator *dtpg,
00387 const UChar *decimal, int32_t length);
00388
00397 U_DRAFT const UChar * U_EXPORT2
00398 udatpg_getDecimal(const UDateTimePatternGenerator *dtpg,
00399 int32_t *pLength);
00400
00426 U_DRAFT int32_t U_EXPORT2
00427 udatpg_replaceFieldTypes(UDateTimePatternGenerator *dtpg,
00428 const UChar *pattern, int32_t patternLength,
00429 const UChar *skeleton, int32_t skeletonLength,
00430 UChar *dest, int32_t destCapacity,
00431 UErrorCode *pErrorCode);
00432
00444 U_DRAFT UEnumeration * U_EXPORT2
00445 udatpg_openSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
00446
00457 U_DRAFT UEnumeration * U_EXPORT2
00458 udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
00459
00470 U_DRAFT const UChar * U_EXPORT2
00471 udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg,
00472 const UChar *skeleton, int32_t skeletonLength,
00473 int32_t *pLength);
00474
00475 #endif