ICU 52.1
52.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
i18n
unicode
ucal.h
Go to the documentation of this file.
1
/*
2
*******************************************************************************
3
* Copyright (C) 1996-2013, International Business Machines Corporation and
4
* others. All Rights Reserved.
5
*******************************************************************************
6
*/
7
8
#ifndef UCAL_H
9
#define UCAL_H
10
11
#include "
unicode/utypes.h
"
12
#include "
unicode/uenum.h
"
13
#include "
unicode/uloc.h
"
14
#include "
unicode/localpointer.h
"
15
16
#if !UCONFIG_NO_FORMATTING
17
147
#define UCAL_UNKNOWN_ZONE_ID "Etc/Unknown"
148
153
typedef
void
*
UCalendar
;
154
158
enum
UCalendarType
{
164
UCAL_TRADITIONAL
,
169
UCAL_DEFAULT
=
UCAL_TRADITIONAL
,
174
UCAL_GREGORIAN
175
};
176
178
typedef
enum
UCalendarType
UCalendarType
;
179
183
enum
UCalendarDateFields
{
189
UCAL_ERA
,
190
195
UCAL_YEAR
,
196
216
UCAL_MONTH
,
217
229
UCAL_WEEK_OF_YEAR
,
230
244
UCAL_WEEK_OF_MONTH
,
245
253
UCAL_DATE
,
254
260
UCAL_DAY_OF_YEAR
,
261
276
UCAL_DAY_OF_WEEK
,
277
301
UCAL_DAY_OF_WEEK_IN_MONTH
,
302
312
UCAL_AM_PM
,
313
323
UCAL_HOUR
,
324
332
UCAL_HOUR_OF_DAY
,
333
340
UCAL_MINUTE
,
341
348
UCAL_SECOND
,
349
356
UCAL_MILLISECOND
,
357
363
UCAL_ZONE_OFFSET
,
364
370
UCAL_DST_OFFSET
,
371
379
UCAL_YEAR_WOY
,
380
387
UCAL_DOW_LOCAL
,
388
395
UCAL_EXTENDED_YEAR
,
396
407
UCAL_JULIAN_DAY
,
408
418
UCAL_MILLISECONDS_IN_DAY
,
419
424
UCAL_IS_LEAP_MONTH
,
425
430
UCAL_FIELD_COUNT
,
431
440
UCAL_DAY_OF_MONTH
=
UCAL_DATE
441
};
442
444
typedef
enum
UCalendarDateFields
UCalendarDateFields
;
453
enum
UCalendarDaysOfWeek
{
455
UCAL_SUNDAY
= 1,
457
UCAL_MONDAY
,
459
UCAL_TUESDAY
,
461
UCAL_WEDNESDAY
,
463
UCAL_THURSDAY
,
465
UCAL_FRIDAY
,
467
UCAL_SATURDAY
468
};
469
471
typedef
enum
UCalendarDaysOfWeek
UCalendarDaysOfWeek
;
472
476
enum
UCalendarMonths
{
478
UCAL_JANUARY
,
480
UCAL_FEBRUARY
,
482
UCAL_MARCH
,
484
UCAL_APRIL
,
486
UCAL_MAY
,
488
UCAL_JUNE
,
490
UCAL_JULY
,
492
UCAL_AUGUST
,
494
UCAL_SEPTEMBER
,
496
UCAL_OCTOBER
,
498
UCAL_NOVEMBER
,
500
UCAL_DECEMBER
,
505
UCAL_UNDECIMBER
506
};
507
509
typedef
enum
UCalendarMonths
UCalendarMonths
;
510
514
enum
UCalendarAMPMs
{
516
UCAL_AM
,
518
UCAL_PM
519
};
520
522
typedef
enum
UCalendarAMPMs
UCalendarAMPMs
;
523
530
enum
USystemTimeZoneType
{
535
UCAL_ZONE_TYPE_ANY
,
540
UCAL_ZONE_TYPE_CANONICAL
,
545
UCAL_ZONE_TYPE_CANONICAL_LOCATION
546
};
547
549
typedef
enum
USystemTimeZoneType
USystemTimeZoneType
;
550
567
U_STABLE
UEnumeration
* U_EXPORT2
568
ucal_openTimeZoneIDEnumeration
(
USystemTimeZoneType
zoneType,
const
char
* region,
569
const
int32_t* rawOffset,
UErrorCode
* ec);
570
582
U_STABLE
UEnumeration
* U_EXPORT2
583
ucal_openTimeZones
(
UErrorCode
* ec);
584
601
U_STABLE
UEnumeration
* U_EXPORT2
602
ucal_openCountryTimeZones
(
const
char
* country,
UErrorCode
* ec);
603
620
U_STABLE
int32_t U_EXPORT2
621
ucal_getDefaultTimeZone
(
UChar
* result, int32_t resultCapacity,
UErrorCode
* ec);
622
632
U_STABLE
void
U_EXPORT2
633
ucal_setDefaultTimeZone
(
const
UChar
* zoneID,
UErrorCode
* ec);
634
651
U_STABLE
int32_t U_EXPORT2
652
ucal_getDSTSavings
(
const
UChar
* zoneID,
UErrorCode
* ec);
653
660
U_STABLE
UDate
U_EXPORT2
661
ucal_getNow
(
void
);
662
686
U_STABLE
UCalendar
* U_EXPORT2
687
ucal_open
(
const
UChar
* zoneID,
688
int32_t len,
689
const
char
* locale,
690
UCalendarType
type,
691
UErrorCode
* status);
692
699
U_STABLE
void
U_EXPORT2
700
ucal_close
(
UCalendar
*cal);
701
702
#if U_SHOW_CPLUSPLUS_API
703
704
U_NAMESPACE_BEGIN
705
715
U_DEFINE_LOCAL_OPEN_POINTER
(
LocalUCalendarPointer
,
UCalendar
,
ucal_close
);
716
717
U_NAMESPACE_END
718
719
#endif
720
729
U_STABLE
UCalendar
* U_EXPORT2
730
ucal_clone
(
const
UCalendar
* cal,
731
UErrorCode
* status);
732
742
U_STABLE
void
U_EXPORT2
743
ucal_setTimeZone
(
UCalendar
* cal,
744
const
UChar
* zoneID,
745
int32_t len,
746
UErrorCode
* status);
747
748
#ifndef U_HIDE_DRAFT_API
749
759
U_DRAFT
int32_t U_EXPORT2
760
ucal_getTimeZoneID
(
const
UCalendar
*cal,
761
UChar
*result,
762
int32_t resultLength,
763
UErrorCode
*status);
764
#endif
/* U_HIDE_DRAFT_API */
765
770
enum
UCalendarDisplayNameType
{
772
UCAL_STANDARD
,
774
UCAL_SHORT_STANDARD
,
776
UCAL_DST
,
778
UCAL_SHORT_DST
779
};
780
782
typedef
enum
UCalendarDisplayNameType
UCalendarDisplayNameType
;
783
797
U_STABLE
int32_t U_EXPORT2
798
ucal_getTimeZoneDisplayName
(
const
UCalendar
* cal,
799
UCalendarDisplayNameType
type,
800
const
char
* locale,
801
UChar
* result,
802
int32_t resultLength,
803
UErrorCode
* status);
804
813
U_STABLE
UBool
U_EXPORT2
814
ucal_inDaylightTime
(
const
UCalendar
* cal,
815
UErrorCode
* status );
816
837
U_STABLE
void
U_EXPORT2
838
ucal_setGregorianChange
(
UCalendar
*cal,
UDate
date,
UErrorCode
*pErrorCode);
839
860
U_STABLE
UDate
U_EXPORT2
861
ucal_getGregorianChange
(
const
UCalendar
*cal,
UErrorCode
*pErrorCode);
862
867
enum
UCalendarAttribute
{
872
UCAL_LENIENT
,
877
UCAL_FIRST_DAY_OF_WEEK
,
882
UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
,
888
UCAL_REPEATED_WALL_TIME
,
894
UCAL_SKIPPED_WALL_TIME
895
};
896
898
typedef
enum
UCalendarAttribute
UCalendarAttribute
;
899
905
enum
UCalendarWallTimeOption
{
912
UCAL_WALLTIME_LAST
,
919
UCAL_WALLTIME_FIRST
,
925
UCAL_WALLTIME_NEXT_VALID
926
};
928
typedef
enum
UCalendarWallTimeOption
UCalendarWallTimeOption
;
929
941
U_STABLE
int32_t U_EXPORT2
942
ucal_getAttribute
(
const
UCalendar
* cal,
943
UCalendarAttribute
attr);
944
956
U_STABLE
void
U_EXPORT2
957
ucal_setAttribute
(
UCalendar
* cal,
958
UCalendarAttribute
attr,
959
int32_t newValue);
960
970
U_STABLE
const
char
* U_EXPORT2
971
ucal_getAvailable
(int32_t localeIndex);
972
981
U_STABLE
int32_t U_EXPORT2
982
ucal_countAvailable
(
void
);
983
995
U_STABLE
UDate
U_EXPORT2
996
ucal_getMillis
(
const
UCalendar
* cal,
997
UErrorCode
* status);
998
1010
U_STABLE
void
U_EXPORT2
1011
ucal_setMillis
(
UCalendar
* cal,
1012
UDate
dateTime,
1013
UErrorCode
* status );
1014
1029
U_STABLE
void
U_EXPORT2
1030
ucal_setDate
(
UCalendar
* cal,
1031
int32_t year,
1032
int32_t month,
1033
int32_t date,
1034
UErrorCode
* status);
1035
1053
U_STABLE
void
U_EXPORT2
1054
ucal_setDateTime
(
UCalendar
* cal,
1055
int32_t year,
1056
int32_t month,
1057
int32_t date,
1058
int32_t hour,
1059
int32_t minute,
1060
int32_t second,
1061
UErrorCode
* status);
1062
1072
U_STABLE
UBool
U_EXPORT2
1073
ucal_equivalentTo
(
const
UCalendar
* cal1,
1074
const
UCalendar
* cal2);
1075
1094
U_STABLE
void
U_EXPORT2
1095
ucal_add
(
UCalendar
* cal,
1096
UCalendarDateFields
field,
1097
int32_t amount,
1098
UErrorCode
* status);
1099
1124
U_STABLE
void
U_EXPORT2
1125
ucal_roll
(
UCalendar
* cal,
1126
UCalendarDateFields
field,
1127
int32_t amount,
1128
UErrorCode
* status);
1129
1146
U_STABLE
int32_t U_EXPORT2
1147
ucal_get
(
const
UCalendar
* cal,
1148
UCalendarDateFields
field,
1149
UErrorCode
* status );
1150
1166
U_STABLE
void
U_EXPORT2
1167
ucal_set
(
UCalendar
* cal,
1168
UCalendarDateFields
field,
1169
int32_t value);
1170
1186
U_STABLE
UBool
U_EXPORT2
1187
ucal_isSet
(
const
UCalendar
* cal,
1188
UCalendarDateFields
field);
1189
1204
U_STABLE
void
U_EXPORT2
1205
ucal_clearField
(
UCalendar
* cal,
1206
UCalendarDateFields
field);
1207
1218
U_STABLE
void
U_EXPORT2
1219
ucal_clear
(
UCalendar
* calendar);
1220
1225
enum
UCalendarLimitType
{
1227
UCAL_MINIMUM
,
1229
UCAL_MAXIMUM
,
1231
UCAL_GREATEST_MINIMUM
,
1233
UCAL_LEAST_MAXIMUM
,
1235
UCAL_ACTUAL_MINIMUM
,
1237
UCAL_ACTUAL_MAXIMUM
1238
};
1239
1241
typedef
enum
UCalendarLimitType
UCalendarLimitType
;
1242
1257
U_STABLE
int32_t U_EXPORT2
1258
ucal_getLimit
(
const
UCalendar
* cal,
1259
UCalendarDateFields
field,
1260
UCalendarLimitType
type,
1261
UErrorCode
* status);
1262
1270
U_STABLE
const
char
* U_EXPORT2
1271
ucal_getLocaleByType
(
const
UCalendar
*cal,
ULocDataLocaleType
type,
UErrorCode
* status);
1272
1279
U_STABLE
const
char
* U_EXPORT2
1280
ucal_getTZDataVersion
(
UErrorCode
* status);
1281
1300
U_STABLE
int32_t U_EXPORT2
1301
ucal_getCanonicalTimeZoneID
(
const
UChar
*
id
, int32_t len,
1302
UChar
* result, int32_t resultCapacity,
UBool
*isSystemID,
UErrorCode
* status);
1310
U_STABLE
const
char
* U_EXPORT2
1311
ucal_getType
(
const
UCalendar
*cal,
UErrorCode
* status);
1312
1329
U_STABLE
UEnumeration
* U_EXPORT2
1330
ucal_getKeywordValuesForLocale
(
const
char
* key,
1331
const
char
* locale,
1332
UBool
commonlyUsed,
1333
UErrorCode
* status);
1334
1335
1339
enum
UCalendarWeekdayType
{
1344
UCAL_WEEKDAY
,
1349
UCAL_WEEKEND
,
1355
UCAL_WEEKEND_ONSET
,
1361
UCAL_WEEKEND_CEASE
1362
};
1363
1365
typedef
enum
UCalendarWeekdayType
UCalendarWeekdayType
;
1366
1384
U_STABLE
UCalendarWeekdayType
U_EXPORT2
1385
ucal_getDayOfWeekType
(
const
UCalendar
*cal,
UCalendarDaysOfWeek
dayOfWeek,
UErrorCode
* status);
1386
1402
U_STABLE
int32_t U_EXPORT2
1403
ucal_getWeekendTransition
(
const
UCalendar
*cal,
UCalendarDaysOfWeek
dayOfWeek,
UErrorCode
*status);
1404
1415
U_STABLE
UBool
U_EXPORT2
1416
ucal_isWeekend
(
const
UCalendar
*cal,
UDate
date,
UErrorCode
*status);
1417
1442
U_STABLE
int32_t U_EXPORT2
1443
ucal_getFieldDifference
(
UCalendar
* cal,
1444
UDate
target,
1445
UCalendarDateFields
field,
1446
UErrorCode
* status);
1447
1452
enum
UTimeZoneTransitionType
{
1458
UCAL_TZ_TRANSITION_NEXT
,
1464
UCAL_TZ_TRANSITION_NEXT_INCLUSIVE
,
1470
UCAL_TZ_TRANSITION_PREVIOUS
,
1476
UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE
1477
};
1478
1479
typedef
enum
UTimeZoneTransitionType
UTimeZoneTransitionType
;
1496
U_DRAFT
UBool
U_EXPORT2
1497
ucal_getTimeZoneTransitionDate
(
const
UCalendar
* cal,
UTimeZoneTransitionType
type,
1498
UDate
* transition,
UErrorCode
* status);
1499
1500
#ifndef U_HIDE_DRAFT_API
1501
1525
U_DRAFT
int32_t U_EXPORT2
1526
ucal_getWindowsTimeZoneID
(
const
UChar
*
id
, int32_t len,
1527
UChar
* winid, int32_t winidCapacity,
UErrorCode
* status);
1528
1557
U_DRAFT
int32_t U_EXPORT2
1558
ucal_getTimeZoneIDForWindowsID
(
const
UChar
* winid, int32_t len,
const
char
* region,
1559
UChar
*
id
, int32_t idCapacity,
UErrorCode
* status);
1560
1561
#endif
/* U_HIDE_DRAFT_API */
1562
1563
#endif
/* #if !UCONFIG_NO_FORMATTING */
1564
1565
#endif
Generated on Thu Sep 30 2021 22:27:47 for ICU 52.1 by
1.8.1.2