ICU 63.1 63.1

ureldatefmt.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *****************************************************************************************
5 * Copyright (C) 2016, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 *****************************************************************************************
8 */
9
10 #ifndef URELDATEFMT_H
11 #define URELDATEFMT_H
12
13 #include "unicode/utypes.h"
14
15 #if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION
16
17 #include "unicode/unum.h"
18 #include "unicode/udisplaycontext.h"
19 #include "unicode/localpointer.h"
20
44 typedef enum UDateRelativeDateTimeFormatterStyle {
49 UDAT_STYLE_LONG,
50
55 UDAT_STYLE_SHORT,
56
61 UDAT_STYLE_NARROW,
62
63 #ifndef U_HIDE_DEPRECATED_API
64
68 UDAT_STYLE_COUNT
69 #endif /* U_HIDE_DEPRECATED_API */
70 } UDateRelativeDateTimeFormatterStyle;
71
77 typedef enum URelativeDateTimeUnit {
83 UDAT_REL_UNIT_YEAR,
89 UDAT_REL_UNIT_QUARTER,
95 UDAT_REL_UNIT_MONTH,
101 UDAT_REL_UNIT_WEEK,
107 UDAT_REL_UNIT_DAY,
113 UDAT_REL_UNIT_HOUR,
119 UDAT_REL_UNIT_MINUTE,
125 UDAT_REL_UNIT_SECOND,
131 UDAT_REL_UNIT_SUNDAY,
137 UDAT_REL_UNIT_MONDAY,
143 UDAT_REL_UNIT_TUESDAY,
149 UDAT_REL_UNIT_WEDNESDAY,
155 UDAT_REL_UNIT_THURSDAY,
161 UDAT_REL_UNIT_FRIDAY,
167 UDAT_REL_UNIT_SATURDAY,
168 #ifndef U_HIDE_DEPRECATED_API
169
173 UDAT_REL_UNIT_COUNT
174 #endif /* U_HIDE_DEPRECATED_API */
175 } URelativeDateTimeUnit;
176
181 struct URelativeDateTimeFormatter;
182 typedef struct URelativeDateTimeFormatter URelativeDateTimeFormatter;
217 U_STABLE URelativeDateTimeFormatter* U_EXPORT2
218 ureldatefmt_open( const char* locale,
219 UNumberFormat* nfToAdopt,
220 UDateRelativeDateTimeFormatterStyle width,
221 UDisplayContext capitalizationContext,
222 UErrorCode* status );
223
230 U_STABLE void U_EXPORT2
231 ureldatefmt_close(URelativeDateTimeFormatter *reldatefmt);
232
233 #if U_SHOW_CPLUSPLUS_API
234
235 U_NAMESPACE_BEGIN
236
246 U_DEFINE_LOCAL_OPEN_POINTER(LocalURelativeDateTimeFormatterPointer, URelativeDateTimeFormatter, ureldatefmt_close);
247
248 U_NAMESPACE_END
249
250 #endif
251
280 U_STABLE int32_t U_EXPORT2
281 ureldatefmt_formatNumeric( const URelativeDateTimeFormatter* reldatefmt,
282 double offset,
283 URelativeDateTimeUnit unit,
284 UChar* result,
285 int32_t resultCapacity,
286 UErrorCode* status);
287
316 U_STABLE int32_t U_EXPORT2
317 ureldatefmt_format( const URelativeDateTimeFormatter* reldatefmt,
318 double offset,
319 URelativeDateTimeUnit unit,
320 UChar* result,
321 int32_t resultCapacity,
322 UErrorCode* status);
323
353 U_STABLE int32_t U_EXPORT2
354 ureldatefmt_combineDateAndTime( const URelativeDateTimeFormatter* reldatefmt,
355 const UChar * relativeDateString,
356 int32_t relativeDateStringLen,
357 const UChar * timeString,
358 int32_t timeStringLen,
359 UChar* result,
360 int32_t resultCapacity,
361 UErrorCode* status );
362
363 #endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION */
364
365 #endif
URelativeDateTimeUnit
URelativeDateTimeUnit
Represents the unit for formatting a relative date.
Definition: ureldatefmt.h:77
ureldatefmt_formatNumeric
int32_t ureldatefmt_formatNumeric(const URelativeDateTimeFormatter *reldatefmt, double offset, URelativeDateTimeUnit unit, UChar *result, int32_t resultCapacity, UErrorCode *status)
Format a combination of URelativeDateTimeUnit and numeric offset using a numeric style, e.g.
ureldatefmt_close
void ureldatefmt_close(URelativeDateTimeFormatter *reldatefmt)
Close a URelativeDateTimeFormatter object.
UDAT_REL_UNIT_SECOND
Specifies that relative unit is second, e.g.
Definition: ureldatefmt.h:125
URelativeDateTimeFormatter
struct URelativeDateTimeFormatter URelativeDateTimeFormatter
C typedef for struct URelativeDateTimeFormatter.
Definition: ureldatefmt.h:182
UDAT_REL_UNIT_WEEK
Specifies that relative unit is week, e.g.
Definition: ureldatefmt.h:101
UDAT_REL_UNIT_MONTH
Specifies that relative unit is month, e.g.
Definition: ureldatefmt.h:95
UDisplayContext
UDisplayContext
Display context settings.
Definition: udisplaycontext.h:64
UDAT_REL_UNIT_FRIDAY
Specifies that relative unit is Friday, e.g.
Definition: ureldatefmt.h:161
UDAT_REL_UNIT_MONDAY
Specifies that relative unit is Monday, e.g.
Definition: ureldatefmt.h:137
UDAT_STYLE_LONG
Everything spelled out.
Definition: ureldatefmt.h:49
UDAT_REL_UNIT_SATURDAY
Specifies that relative unit is Saturday, e.g.
Definition: ureldatefmt.h:167
udisplaycontext.h
C API: Display context types (enum values)
UDAT_REL_UNIT_MINUTE
Specifies that relative unit is minute, e.g.
Definition: ureldatefmt.h:119
UDAT_REL_UNIT_WEDNESDAY
Specifies that relative unit is Wednesday, e.g.
Definition: ureldatefmt.h:149
UDAT_STYLE_SHORT
Abbreviations used when possible.
Definition: ureldatefmt.h:55
UDAT_REL_UNIT_SUNDAY
Specifies that relative unit is Sunday, e.g.
Definition: ureldatefmt.h:131
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:137
ureldatefmt_format
int32_t ureldatefmt_format(const URelativeDateTimeFormatter *reldatefmt, double offset, URelativeDateTimeUnit unit, UChar *result, int32_t resultCapacity, UErrorCode *status)
Format a combination of URelativeDateTimeUnit and numeric offset using a text style if possible...
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:487
UNumberFormat
void * UNumberFormat
A number formatter.
Definition: unum.h:141
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
ureldatefmt_open
URelativeDateTimeFormatter * ureldatefmt_open(const char *locale, UNumberFormat *nfToAdopt, UDateRelativeDateTimeFormatterStyle width, UDisplayContext capitalizationContext, UErrorCode *status)
Open a new URelativeDateTimeFormatter object for a given locale using the specified width and capital...
UDAT_STYLE_COUNT
One more than the highest normal UDateRelativeDateTimeFormatterStyle value.
Definition: ureldatefmt.h:68
UDAT_REL_UNIT_QUARTER
Specifies that relative unit is quarter, e.g.
Definition: ureldatefmt.h:89
UDateRelativeDateTimeFormatterStyle
UDateRelativeDateTimeFormatterStyle
The formatting style.
Definition: ureldatefmt.h:44
LocalURelativeDateTimeFormatterPointer
"Smart pointer" class, closes a URelativeDateTimeFormatter via ureldatefmt_close().
UDAT_REL_UNIT_HOUR
Specifies that relative unit is hour, e.g.
Definition: ureldatefmt.h:113
UDAT_STYLE_NARROW
Use the shortest possible form.
Definition: ureldatefmt.h:61
UDAT_REL_UNIT_YEAR
Specifies that relative unit is year, e.g.
Definition: ureldatefmt.h:83
UChar
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:342
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:138
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:401
UDAT_REL_UNIT_TUESDAY
Specifies that relative unit is Tuesday, e.g.
Definition: ureldatefmt.h:143
UDAT_REL_UNIT_DAY
Specifies that relative unit is day, e.g.
Definition: ureldatefmt.h:107
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UDAT_REL_UNIT_THURSDAY
Specifies that relative unit is Thursday, e.g.
Definition: ureldatefmt.h:155
UDAT_REL_UNIT_COUNT
One more than the highest normal URelativeDateTimeUnit value.
Definition: ureldatefmt.h:173
U_STABLE
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111
unum.h
C API: Compatibility APIs for number formatting.
ureldatefmt_combineDateAndTime
int32_t ureldatefmt_combineDateAndTime(const URelativeDateTimeFormatter *reldatefmt, const UChar *relativeDateString, int32_t relativeDateStringLen, const UChar *timeString, int32_t timeStringLen, UChar *result, int32_t resultCapacity, UErrorCode *status)
Combines a relative date string and a time string in this object&#39;s locale.