ucal.h

Go to the documentation of this file.
00001 /*
00002 * Copyright (C) 1996-2005, International Business Machines Corporation and others. All Rights Reserved.
00003 *******************************************************************************
00004 */
00005 
00006 #ifndef UCAL_H
00007 #define UCAL_H
00008 
00009 #include "unicode/utypes.h"
00010 #include "unicode/uenum.h"
00011 #include "unicode/uloc.h"
00012 
00013 #if !UCONFIG_NO_FORMATTING
00014 
00144 typedef void* UCalendar;
00145 
00149 enum UCalendarType {
00151   UCAL_TRADITIONAL,
00153   UCAL_GREGORIAN
00154 };
00155 
00157 typedef enum UCalendarType UCalendarType;
00158 
00162 enum UCalendarDateFields {
00167   UCAL_ERA,
00172   UCAL_YEAR,
00177   UCAL_MONTH,
00182   UCAL_WEEK_OF_YEAR,
00187   UCAL_WEEK_OF_MONTH,
00192   UCAL_DATE,
00197   UCAL_DAY_OF_YEAR,
00202   UCAL_DAY_OF_WEEK,
00207   UCAL_DAY_OF_WEEK_IN_MONTH,
00212   UCAL_AM_PM,
00217   UCAL_HOUR,
00222   UCAL_HOUR_OF_DAY,
00227   UCAL_MINUTE,
00232   UCAL_SECOND,
00237   UCAL_MILLISECOND,
00242   UCAL_ZONE_OFFSET,
00247   UCAL_DST_OFFSET,
00252   UCAL_YEAR_WOY,
00257 #ifndef U_HIDE_DRAFT_API
00258 
00259   UCAL_DOW_LOCAL,
00264   UCAL_EXTENDED_YEAR,       
00269   UCAL_JULIAN_DAY, 
00274   UCAL_MILLISECONDS_IN_DAY,
00275 
00276 #endif /* U_HIDE_DRAFT_API */
00277   
00282   UCAL_FIELD_COUNT,
00283 
00284 #ifndef U_HIDE_DRAFT_API
00285 
00290   UCAL_DAY_OF_MONTH=UCAL_DATE
00291 
00292 #endif /*U_HIDE_DRAFT_API*/
00293 };
00294 
00296 typedef enum UCalendarDateFields UCalendarDateFields;
00305 enum UCalendarDaysOfWeek {
00307   UCAL_SUNDAY = 1,
00309   UCAL_MONDAY,
00311   UCAL_TUESDAY,
00313   UCAL_WEDNESDAY,
00315   UCAL_THURSDAY,
00317   UCAL_FRIDAY,
00319   UCAL_SATURDAY
00320 };
00321 
00323 typedef enum UCalendarDaysOfWeek UCalendarDaysOfWeek;
00324 
00328 enum UCalendarMonths {
00330   UCAL_JANUARY,
00332   UCAL_FEBRUARY,
00334   UCAL_MARCH,
00336   UCAL_APRIL,
00338   UCAL_MAY,
00340   UCAL_JUNE,
00342   UCAL_JULY,
00344   UCAL_AUGUST,
00346   UCAL_SEPTEMBER,
00348   UCAL_OCTOBER,
00350   UCAL_NOVEMBER,
00352   UCAL_DECEMBER,
00354   UCAL_UNDECIMBER
00355 };
00356 
00358 typedef enum UCalendarMonths UCalendarMonths;
00359 
00363 enum UCalendarAMPMs {
00365   UCAL_AM,
00367   UCAL_PM
00368 };
00369 
00371 typedef enum UCalendarAMPMs UCalendarAMPMs;
00372 
00384 U_DRAFT UEnumeration* U_EXPORT2
00385 ucal_openTimeZones(UErrorCode* ec);
00386 
00403 U_DRAFT UEnumeration* U_EXPORT2
00404 ucal_openCountryTimeZones(const char* country, UErrorCode* ec);
00405 
00422 U_DRAFT int32_t U_EXPORT2
00423 ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec);
00424 
00434 U_DRAFT void U_EXPORT2
00435 ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec);
00436 
00453 U_DRAFT int32_t U_EXPORT2
00454 ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec);
00455 
00462 U_STABLE UDate U_EXPORT2 
00463 ucal_getNow(void);
00464 
00477 U_STABLE UCalendar* U_EXPORT2 
00478 ucal_open(const UChar*   zoneID,
00479           int32_t        len,
00480           const char*    locale,
00481           UCalendarType  type,
00482           UErrorCode*    status);
00483 
00490 U_STABLE void U_EXPORT2 
00491 ucal_close(UCalendar *cal);
00492 
00502 U_STABLE void U_EXPORT2 
00503 ucal_setTimeZone(UCalendar*    cal,
00504                  const UChar*  zoneID,
00505                  int32_t       len,
00506                  UErrorCode*   status);
00507 
00512 enum UCalendarDisplayNameType {
00514   UCAL_STANDARD,
00516   UCAL_SHORT_STANDARD,
00518   UCAL_DST,
00520   UCAL_SHORT_DST
00521 };
00522 
00524 typedef enum UCalendarDisplayNameType UCalendarDisplayNameType;
00525 
00539 U_STABLE int32_t U_EXPORT2 
00540 ucal_getTimeZoneDisplayName(const UCalendar*          cal,
00541                             UCalendarDisplayNameType  type,
00542                             const char*               locale,
00543                             UChar*                    result,
00544                             int32_t                   resultLength,
00545                             UErrorCode*               status);
00546 
00555 U_STABLE UBool U_EXPORT2 
00556 ucal_inDaylightTime(const UCalendar*  cal,
00557                     UErrorCode*       status );
00558 
00563 enum UCalendarAttribute {
00565   UCAL_LENIENT,
00567   UCAL_FIRST_DAY_OF_WEEK,
00569   UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
00570 };
00571 
00573 typedef enum UCalendarAttribute UCalendarAttribute;
00574 
00586 U_STABLE int32_t U_EXPORT2 
00587 ucal_getAttribute(const UCalendar*    cal,
00588                   UCalendarAttribute  attr);
00589 
00601 U_STABLE void U_EXPORT2 
00602 ucal_setAttribute(UCalendar*          cal,
00603                   UCalendarAttribute  attr,
00604                   int32_t             newValue);
00605 
00615 U_STABLE const char* U_EXPORT2 
00616 ucal_getAvailable(int32_t index);
00617 
00626 U_STABLE int32_t U_EXPORT2 
00627 ucal_countAvailable(void);
00628 
00640 U_STABLE UDate U_EXPORT2 
00641 ucal_getMillis(const UCalendar*  cal,
00642                UErrorCode*       status);
00643 
00655 U_STABLE void U_EXPORT2 
00656 ucal_setMillis(UCalendar*   cal,
00657                UDate        dateTime,
00658                UErrorCode*  status );
00659 
00674 U_STABLE void U_EXPORT2 
00675 ucal_setDate(UCalendar*   cal,
00676              int32_t      year,
00677              int32_t      month,
00678              int32_t      date,
00679              UErrorCode*  status);
00680 
00698 U_STABLE void U_EXPORT2 
00699 ucal_setDateTime(UCalendar*   cal,
00700                  int32_t      year,
00701                  int32_t      month,
00702                  int32_t      date,
00703                  int32_t      hour,
00704                  int32_t      minute,
00705                  int32_t      second,
00706                  UErrorCode*  status);
00707 
00717 U_STABLE UBool U_EXPORT2 
00718 ucal_equivalentTo(const UCalendar*  cal1,
00719                   const UCalendar*  cal2);
00720 
00736 U_STABLE void U_EXPORT2 
00737 ucal_add(UCalendar*           cal,
00738          UCalendarDateFields  field,
00739          int32_t              amount,
00740          UErrorCode*          status);
00741 
00757 U_STABLE void U_EXPORT2 
00758 ucal_roll(UCalendar*           cal,
00759           UCalendarDateFields  field,
00760           int32_t              amount,
00761           UErrorCode*          status);
00762 
00779 U_STABLE int32_t U_EXPORT2 
00780 ucal_get(const UCalendar*     cal,
00781          UCalendarDateFields  field,
00782          UErrorCode*          status );
00783 
00799 U_STABLE void U_EXPORT2 
00800 ucal_set(UCalendar*           cal,
00801          UCalendarDateFields  field,
00802          int32_t              value);
00803 
00819 U_STABLE UBool U_EXPORT2 
00820 ucal_isSet(const UCalendar*     cal,
00821            UCalendarDateFields  field);
00822 
00837 U_STABLE void U_EXPORT2 
00838 ucal_clearField(UCalendar*           cal,
00839                 UCalendarDateFields  field);
00840 
00851 U_STABLE void U_EXPORT2 
00852 ucal_clear(UCalendar* calendar);
00853 
00858 enum UCalendarLimitType {
00860   UCAL_MINIMUM,
00862   UCAL_MAXIMUM,
00864   UCAL_GREATEST_MINIMUM,
00866   UCAL_LEAST_MAXIMUM,
00868   UCAL_ACTUAL_MINIMUM,
00870   UCAL_ACTUAL_MAXIMUM
00871 };
00872 
00874 typedef enum UCalendarLimitType UCalendarLimitType;
00875 
00890 U_STABLE int32_t U_EXPORT2 
00891 ucal_getLimit(const UCalendar*     cal,
00892               UCalendarDateFields  field,
00893               UCalendarLimitType   type,
00894               UErrorCode*          status);
00895 
00896 #ifdef U_USE_UCAL_OBSOLETE_2_8
00897 
00907 U_OBSOLETE const UChar* U_EXPORT2 
00908 ucal_getAvailableTZIDs(int32_t      rawOffset,
00909                        int32_t      index,
00910                        UErrorCode*  status);
00911 
00921 U_OBSOLETE int32_t U_EXPORT2 
00922 ucal_countAvailableTZIDs(int32_t rawOffset);
00923 #endif
00924 
00932 U_DRAFT const char * U_EXPORT2
00933 ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status);
00934 
00935 #endif /* #if !UCONFIG_NO_FORMATTING */
00936 
00937 #endif

Generated on Tue Sep 13 11:08:15 2005 for ICU 3.4 by  doxygen 1.4.4