ICU 57.1
57.1
i18n
unicode
reldatefmt.h
Go to the documentation of this file.
1
/*
2
*****************************************************************************
3
* Copyright (C) 2014-2016, International Business Machines Corporation and
4
* others.
5
* All Rights Reserved.
6
*****************************************************************************
7
*
8
* File RELDATEFMT.H
9
*****************************************************************************
10
*/
11
12
#ifndef __RELDATEFMT_H
13
#define __RELDATEFMT_H
14
15
#include "
unicode/utypes.h
"
16
#include "
unicode/uobject.h
"
17
#include "
unicode/udisplaycontext.h
"
18
#include "
unicode/ureldatefmt.h
"
19
#include "
unicode/locid.h
"
20
26
#if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION
27
33
typedef
enum
UDateRelativeUnit
{
34
39
UDAT_RELATIVE_SECONDS
,
40
45
UDAT_RELATIVE_MINUTES
,
46
51
UDAT_RELATIVE_HOURS
,
52
57
UDAT_RELATIVE_DAYS
,
58
63
UDAT_RELATIVE_WEEKS
,
64
69
UDAT_RELATIVE_MONTHS
,
70
75
UDAT_RELATIVE_YEARS
,
76
81
UDAT_RELATIVE_UNIT_COUNT
82
}
UDateRelativeUnit
;
83
88
typedef
enum
UDateAbsoluteUnit
{
89
90
// Days of week have to remain together and in order from Sunday to
91
// Saturday.
96
UDAT_ABSOLUTE_SUNDAY
,
97
102
UDAT_ABSOLUTE_MONDAY
,
103
108
UDAT_ABSOLUTE_TUESDAY
,
109
114
UDAT_ABSOLUTE_WEDNESDAY
,
115
120
UDAT_ABSOLUTE_THURSDAY
,
121
126
UDAT_ABSOLUTE_FRIDAY
,
127
132
UDAT_ABSOLUTE_SATURDAY
,
133
138
UDAT_ABSOLUTE_DAY
,
139
144
UDAT_ABSOLUTE_WEEK
,
145
150
UDAT_ABSOLUTE_MONTH
,
151
156
UDAT_ABSOLUTE_YEAR
,
157
162
UDAT_ABSOLUTE_NOW
,
163
168
UDAT_ABSOLUTE_UNIT_COUNT
169
}
UDateAbsoluteUnit
;
170
176
typedef
enum
UDateDirection
{
177
182
UDAT_DIRECTION_LAST_2
,
183
188
UDAT_DIRECTION_LAST
,
189
194
UDAT_DIRECTION_THIS
,
195
200
UDAT_DIRECTION_NEXT
,
201
206
UDAT_DIRECTION_NEXT_2
,
207
212
UDAT_DIRECTION_PLAIN
,
213
218
UDAT_DIRECTION_COUNT
219
}
UDateDirection
;
220
221
222
U_NAMESPACE_BEGIN
223
224
class
RelativeDateTimeCacheData;
225
class
SharedNumberFormat;
226
class
SharedPluralRules;
227
class
SharedBreakIterator;
228
class
NumberFormat;
229
class
UnicodeString;
230
299
class
U_I18N_API
RelativeDateTimeFormatter
:
public
UObject
{
300
public
:
301
306
RelativeDateTimeFormatter
(
UErrorCode
& status);
307
312
RelativeDateTimeFormatter
(
const
Locale
& locale,
UErrorCode
& status);
313
324
RelativeDateTimeFormatter
(
325
const
Locale
& locale,
NumberFormat
*nfToAdopt,
UErrorCode
& status);
326
342
RelativeDateTimeFormatter
(
343
const
Locale
& locale,
344
NumberFormat
*nfToAdopt,
345
UDateRelativeDateTimeFormatterStyle
style,
346
UDisplayContext
capitalizationContext,
347
UErrorCode
& status);
348
353
RelativeDateTimeFormatter
(
const
RelativeDateTimeFormatter
& other);
354
359
RelativeDateTimeFormatter
& operator=(
360
const
RelativeDateTimeFormatter
& other);
361
366
virtual
~
RelativeDateTimeFormatter
();
367
383
UnicodeString
& format(
384
double
quantity,
385
UDateDirection
direction,
386
UDateRelativeUnit
unit,
387
UnicodeString
& appendTo,
388
UErrorCode
& status)
const
;
389
402
UnicodeString
& format(
403
UDateDirection
direction,
404
UDateAbsoluteUnit
unit,
405
UnicodeString
& appendTo,
406
UErrorCode
& status)
const
;
407
408
#ifndef U_HIDE_DRAFT_API
409
426
UnicodeString
& formatNumeric(
427
double
offset,
428
URelativeDateTimeUnit
unit,
429
UnicodeString
& appendTo,
430
UErrorCode
& status)
const
;
431
449
UnicodeString
& format(
450
double
offset,
451
URelativeDateTimeUnit
unit,
452
UnicodeString
& appendTo,
453
UErrorCode
& status)
const
;
454
#endif
/* U_HIDE_DRAFT_API */
455
468
UnicodeString
& combineDateAndTime(
469
const
UnicodeString
& relativeDateString,
470
const
UnicodeString
& timeString,
471
UnicodeString
& appendTo,
472
UErrorCode
& status)
const
;
473
479
const
NumberFormat
& getNumberFormat()
const
;
480
486
UDisplayContext
getCapitalizationContext()
const
;
487
493
UDateRelativeDateTimeFormatterStyle
getFormatStyle()
const
;
494
495
private
:
496
const
RelativeDateTimeCacheData* fCache;
497
const
SharedNumberFormat *fNumberFormat;
498
const
SharedPluralRules *fPluralRules;
499
UDateRelativeDateTimeFormatterStyle
fStyle;
500
UDisplayContext
fContext;
501
const
SharedBreakIterator *fOptBreakIterator;
502
Locale
fLocale;
503
void
init(
504
NumberFormat
*nfToAdopt,
505
BreakIterator
*brkIter,
506
UErrorCode
&status);
507
void
adjustForContext(
UnicodeString
&)
const
;
508
};
509
510
U_NAMESPACE_END
511
512
#endif
/* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION*/
513
#endif
UDAT_ABSOLUTE_WEDNESDAY
@ UDAT_ABSOLUTE_WEDNESDAY
Wednesday.
Definition:
reldatefmt.h:114
UDAT_DIRECTION_LAST
@ UDAT_DIRECTION_LAST
Last.
Definition:
reldatefmt.h:188
UDAT_RELATIVE_SECONDS
@ UDAT_RELATIVE_SECONDS
Seconds.
Definition:
reldatefmt.h:39
icu::BreakIterator
The BreakIterator class implements methods for finding the location of boundaries in text.
Definition:
brkiter.h:100
icu::NumberFormat
Abstract base class for all number formats.
Definition:
numfmt.h:167
icu::RelativeDateTimeFormatter
Formats simple relative dates.
Definition:
reldatefmt.h:299
UDAT_RELATIVE_MONTHS
@ UDAT_RELATIVE_MONTHS
Months.
Definition:
reldatefmt.h:69
UDAT_ABSOLUTE_TUESDAY
@ UDAT_ABSOLUTE_TUESDAY
Tuesday.
Definition:
reldatefmt.h:108
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UDAT_RELATIVE_MINUTES
@ UDAT_RELATIVE_MINUTES
Minutes.
Definition:
reldatefmt.h:45
U_I18N_API
#define U_I18N_API
Definition:
utypes.h:358
URelativeDateTimeUnit
URelativeDateTimeUnit
Represents the unit for formatting a relative date.
Definition:
ureldatefmt.h:74
UDAT_ABSOLUTE_YEAR
@ UDAT_ABSOLUTE_YEAR
Year.
Definition:
reldatefmt.h:156
UDAT_RELATIVE_YEARS
@ UDAT_RELATIVE_YEARS
Years.
Definition:
reldatefmt.h:75
UDAT_RELATIVE_HOURS
@ UDAT_RELATIVE_HOURS
Hours.
Definition:
reldatefmt.h:51
UDAT_DIRECTION_COUNT
@ UDAT_DIRECTION_COUNT
Count of items in this enum.
Definition:
reldatefmt.h:218
UDAT_ABSOLUTE_MONDAY
@ UDAT_ABSOLUTE_MONDAY
Monday.
Definition:
reldatefmt.h:102
UDAT_ABSOLUTE_WEEK
@ UDAT_ABSOLUTE_WEEK
Week.
Definition:
reldatefmt.h:144
UDAT_RELATIVE_DAYS
@ UDAT_RELATIVE_DAYS
Days.
Definition:
reldatefmt.h:57
UDAT_ABSOLUTE_FRIDAY
@ UDAT_ABSOLUTE_FRIDAY
Friday.
Definition:
reldatefmt.h:126
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition:
unistr.h:293
ureldatefmt.h
C API: URelativeDateTimeFormatter, relative date formatting of unit + numeric offset.
UDateDirection
UDateDirection
Represents a direction for an absolute unit e.g "Next Tuesday" or "Last Tuesday".
Definition:
reldatefmt.h:176
icu::UObject
UObject is the common ICU "boilerplate" class.
Definition:
uobject.h:221
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition:
utypes.h:476
UDAT_ABSOLUTE_DAY
@ UDAT_ABSOLUTE_DAY
Day.
Definition:
reldatefmt.h:138
UDAT_DIRECTION_THIS
@ UDAT_DIRECTION_THIS
This.
Definition:
reldatefmt.h:194
UDAT_ABSOLUTE_SUNDAY
@ UDAT_ABSOLUTE_SUNDAY
Sunday.
Definition:
reldatefmt.h:96
UDAT_DIRECTION_PLAIN
@ UDAT_DIRECTION_PLAIN
Plain, which means the absence of a qualifier.
Definition:
reldatefmt.h:212
UDAT_ABSOLUTE_SATURDAY
@ UDAT_ABSOLUTE_SATURDAY
Saturday.
Definition:
reldatefmt.h:132
UDAT_RELATIVE_UNIT_COUNT
@ UDAT_RELATIVE_UNIT_COUNT
Count of items in this enum.
Definition:
reldatefmt.h:81
UDAT_RELATIVE_WEEKS
@ UDAT_RELATIVE_WEEKS
Weeks.
Definition:
reldatefmt.h:63
UDisplayContext
UDisplayContext
Display context settings.
Definition:
udisplaycontext.h:56
UDAT_ABSOLUTE_MONTH
@ UDAT_ABSOLUTE_MONTH
Month.
Definition:
reldatefmt.h:150
UDAT_DIRECTION_LAST_2
@ UDAT_DIRECTION_LAST_2
Two before.
Definition:
reldatefmt.h:182
UDateAbsoluteUnit
UDateAbsoluteUnit
Represents an absolute unit.
Definition:
reldatefmt.h:88
UDAT_DIRECTION_NEXT
@ UDAT_DIRECTION_NEXT
Next.
Definition:
reldatefmt.h:200
UDAT_ABSOLUTE_UNIT_COUNT
@ UDAT_ABSOLUTE_UNIT_COUNT
Count of items in this enum.
Definition:
reldatefmt.h:168
udisplaycontext.h
C API: Display context types (enum values)
locid.h
C++ API: Locale ID object.
UDateRelativeDateTimeFormatterStyle
UDateRelativeDateTimeFormatterStyle
The formatting style.
Definition:
ureldatefmt.h:42
UDateRelativeUnit
UDateRelativeUnit
Represents the unit for formatting a relative date.
Definition:
reldatefmt.h:33
uobject.h
C++ API: Common ICU base class UObject.
U_NAMESPACE_END
#define U_NAMESPACE_END
Definition:
uversion.h:130
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
Definition:
uversion.h:129
UDAT_ABSOLUTE_NOW
@ UDAT_ABSOLUTE_NOW
Now.
Definition:
reldatefmt.h:162
icu::Locale
A Locale object represents a specific geographical, political, or cultural region.
Definition:
locid.h:185
UDAT_DIRECTION_NEXT_2
@ UDAT_DIRECTION_NEXT_2
Two after.
Definition:
reldatefmt.h:206
UDAT_ABSOLUTE_THURSDAY
@ UDAT_ABSOLUTE_THURSDAY
Thursday.
Definition:
reldatefmt.h:120
Generated by
1.8.17