ICU 55.1  55.1
reldatefmt.h
Go to the documentation of this file.
1 /*
2 *****************************************************************************
3 * Copyright (C) 2014-2015, 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"
18 #include "unicode/locid.h"
19 
25 #if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION
26 
27 #ifndef U_HIDE_DRAFT_API
28 
34 
40 
46 
52 
59 
60 #endif /* U_HIDE_DRAFT_API */
61 
67 typedef enum UDateRelativeUnit {
68 
74 
80 
86 
92 
98 
104 
110 
117 
122 typedef enum UDateAbsoluteUnit {
123 
124  // Days of week have to remain together and in order from Sunday to
125  // Saturday.
131 
137 
143 
149 
155 
161 
167 
173 
179 
185 
191 
197 
204 
210 typedef enum UDateDirection {
211 
217 
223 
229 
235 
241 
247 
254 
255 
257 
258 class RelativeDateTimeCacheData;
259 class SharedNumberFormat;
260 class SharedPluralRules;
261 class SharedBreakIterator;
262 class NumberFormat;
263 class UnicodeString;
264 
334 public:
335 
341 
346  RelativeDateTimeFormatter(const Locale& locale, UErrorCode& status);
347 
359  const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status);
360 
361 #ifndef U_HIDE_DRAFT_API
362 
378  const Locale& locale,
379  NumberFormat *nfToAdopt,
381  UDisplayContext capitalizationContext,
382  UErrorCode& status);
383 #endif /* U_HIDE_DRAFT_API */
384 
390 
396  const RelativeDateTimeFormatter& other);
397 
403 
420  double quantity,
421  UDateDirection direction,
422  UDateRelativeUnit unit,
423  UnicodeString& appendTo,
424  UErrorCode& status) const;
425 
439  UDateDirection direction,
440  UDateAbsoluteUnit unit,
441  UnicodeString& appendTo,
442  UErrorCode& status) const;
443 
457  const UnicodeString& relativeDateString,
458  const UnicodeString& timeString,
459  UnicodeString& appendTo,
460  UErrorCode& status) const;
461 
468 
469 #ifndef U_HIDE_DRAFT_API
470 
476 
483 #endif /* U_HIDE_DRAFT_API */
484 
485 private:
486  const RelativeDateTimeCacheData* fCache;
487  const SharedNumberFormat *fNumberFormat;
488  const SharedPluralRules *fPluralRules;
490  UDisplayContext fContext;
491  const SharedBreakIterator *fOptBreakIterator;
492  Locale fLocale;
493  void init(
494  NumberFormat *nfToAdopt,
495  BreakIterator *brkIter,
496  UErrorCode &status);
497  void adjustForContext(UnicodeString &) const;
498 };
499 
501 
502 #endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION*/
503 #endif
UDAT_ABSOLUTE_WEDNESDAY
@ UDAT_ABSOLUTE_WEDNESDAY
Wednesday.
Definition: reldatefmt.h:148
UDAT_DIRECTION_LAST
@ UDAT_DIRECTION_LAST
Last.
Definition: reldatefmt.h:222
icu::RelativeDateTimeFormatter::getFormatStyle
UDateRelativeDateTimeFormatterStyle getFormatStyle() const
Returns the format style.
UDAT_RELATIVE_SECONDS
@ UDAT_RELATIVE_SECONDS
Seconds.
Definition: reldatefmt.h:73
icu::RelativeDateTimeFormatter::getNumberFormat
const NumberFormat & getNumberFormat() const
Returns the NumberFormat this object is using.
icu::BreakIterator
The BreakIterator class implements methods for finding the location of boundaries in text.
Definition: brkiter.h:100
icu::RelativeDateTimeFormatter::RelativeDateTimeFormatter
RelativeDateTimeFormatter(const Locale &locale, NumberFormat *nfToAdopt, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale and NumberFormat.
icu::NumberFormat
Abstract base class for all number formats.
Definition: numfmt.h:172
icu::RelativeDateTimeFormatter
Formats simple relative dates.
Definition: reldatefmt.h:333
UDAT_RELATIVE_MONTHS
@ UDAT_RELATIVE_MONTHS
Months.
Definition: reldatefmt.h:103
UDAT_ABSOLUTE_TUESDAY
@ UDAT_ABSOLUTE_TUESDAY
Tuesday.
Definition: reldatefmt.h:142
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UDAT_RELATIVE_MINUTES
@ UDAT_RELATIVE_MINUTES
Minutes.
Definition: reldatefmt.h:79
U_I18N_API
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:358
UDAT_ABSOLUTE_YEAR
@ UDAT_ABSOLUTE_YEAR
Year.
Definition: reldatefmt.h:190
UDAT_RELATIVE_YEARS
@ UDAT_RELATIVE_YEARS
Years.
Definition: reldatefmt.h:109
icu::RelativeDateTimeFormatter::RelativeDateTimeFormatter
RelativeDateTimeFormatter(UErrorCode &status)
Create RelativeDateTimeFormatter with default locale.
UDAT_RELATIVE_HOURS
@ UDAT_RELATIVE_HOURS
Hours.
Definition: reldatefmt.h:85
UDAT_DIRECTION_COUNT
@ UDAT_DIRECTION_COUNT
Count of items in this enum.
Definition: reldatefmt.h:252
UDAT_ABSOLUTE_MONDAY
@ UDAT_ABSOLUTE_MONDAY
Monday.
Definition: reldatefmt.h:136
UDAT_ABSOLUTE_WEEK
@ UDAT_ABSOLUTE_WEEK
Week.
Definition: reldatefmt.h:178
UDAT_RELATIVE_DAYS
@ UDAT_RELATIVE_DAYS
Days.
Definition: reldatefmt.h:91
UDAT_ABSOLUTE_FRIDAY
@ UDAT_ABSOLUTE_FRIDAY
Friday.
Definition: reldatefmt.h:160
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:246
UDateDirection
UDateDirection
Represents a direction for an absolute unit e.g "Next Tuesday" or "Last Tuesday".
Definition: reldatefmt.h:210
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
icu::RelativeDateTimeFormatter::RelativeDateTimeFormatter
RelativeDateTimeFormatter(const RelativeDateTimeFormatter &other)
Copy constructor.
icu::RelativeDateTimeFormatter::getCapitalizationContext
UDisplayContext getCapitalizationContext() const
Returns the capitalization context.
UDAT_ABSOLUTE_DAY
@ UDAT_ABSOLUTE_DAY
Day.
Definition: reldatefmt.h:172
UDAT_DIRECTION_THIS
@ UDAT_DIRECTION_THIS
This.
Definition: reldatefmt.h:228
icu::RelativeDateTimeFormatter::~RelativeDateTimeFormatter
virtual ~RelativeDateTimeFormatter()
Destructor.
UDAT_STYLE_SHORT
@ UDAT_STYLE_SHORT
Abbreviations used when possible.
Definition: reldatefmt.h:45
icu::RelativeDateTimeFormatter::operator=
RelativeDateTimeFormatter & operator=(const RelativeDateTimeFormatter &other)
Assignment operator.
UDAT_ABSOLUTE_SUNDAY
@ UDAT_ABSOLUTE_SUNDAY
Sunday.
Definition: reldatefmt.h:130
UDAT_DIRECTION_PLAIN
@ UDAT_DIRECTION_PLAIN
Plain, which means the absence of a qualifier.
Definition: reldatefmt.h:246
icu::RelativeDateTimeFormatter::RelativeDateTimeFormatter
RelativeDateTimeFormatter(const Locale &locale, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale.
UDAT_ABSOLUTE_SATURDAY
@ UDAT_ABSOLUTE_SATURDAY
Saturday.
Definition: reldatefmt.h:166
UDAT_RELATIVE_UNIT_COUNT
@ UDAT_RELATIVE_UNIT_COUNT
Count of items in this enum.
Definition: reldatefmt.h:115
UDAT_STYLE_LONG
@ UDAT_STYLE_LONG
Everything spelled out.
Definition: reldatefmt.h:39
icu::RelativeDateTimeFormatter::RelativeDateTimeFormatter
RelativeDateTimeFormatter(const Locale &locale, NumberFormat *nfToAdopt, UDateRelativeDateTimeFormatterStyle style, UDisplayContext capitalizationContext, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale, NumberFormat, and capitalization context.
UDAT_RELATIVE_WEEKS
@ UDAT_RELATIVE_WEEKS
Weeks.
Definition: reldatefmt.h:97
UDAT_STYLE_COUNT
@ UDAT_STYLE_COUNT
The number of styles.
Definition: reldatefmt.h:57
UDisplayContext
UDisplayContext
Display context settings.
Definition: udisplaycontext.h:59
UDAT_ABSOLUTE_MONTH
@ UDAT_ABSOLUTE_MONTH
Month.
Definition: reldatefmt.h:184
UDAT_DIRECTION_LAST_2
@ UDAT_DIRECTION_LAST_2
Two before.
Definition: reldatefmt.h:216
UDAT_STYLE_NARROW
@ UDAT_STYLE_NARROW
Use the shortest possible form.
Definition: reldatefmt.h:51
UDateAbsoluteUnit
UDateAbsoluteUnit
Represents an absolute unit.
Definition: reldatefmt.h:122
UDAT_DIRECTION_NEXT
@ UDAT_DIRECTION_NEXT
Next.
Definition: reldatefmt.h:234
icu::RelativeDateTimeFormatter::format
UnicodeString & format(double quantity, UDateDirection direction, UDateRelativeUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Formats a relative date with a quantity such as "in 5 days" or "3 months ago".
UDAT_ABSOLUTE_UNIT_COUNT
@ UDAT_ABSOLUTE_UNIT_COUNT
Count of items in this enum.
Definition: reldatefmt.h:202
udisplaycontext.h
C API: Display context types (enum values)
locid.h
C++ API: Locale ID object.
UDateRelativeUnit
UDateRelativeUnit
Represents the unit for formatting a relative date.
Definition: reldatefmt.h:67
uobject.h
C++ API: Common ICU base class UObject.
UDateRelativeDateTimeFormatterStyle
UDateRelativeDateTimeFormatterStyle
The formatting style.
Definition: reldatefmt.h:33
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
icu::RelativeDateTimeFormatter::format
UnicodeString & format(UDateDirection direction, UDateAbsoluteUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Formats a relative date without a quantity.
UDAT_ABSOLUTE_NOW
@ UDAT_ABSOLUTE_NOW
Now.
Definition: reldatefmt.h:196
icu::RelativeDateTimeFormatter::combineDateAndTime
UnicodeString & combineDateAndTime(const UnicodeString &relativeDateString, const UnicodeString &timeString, UnicodeString &appendTo, UErrorCode &status) const
Combines a relative date string and a time string in this object's locale.
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:240
UDAT_ABSOLUTE_THURSDAY
@ UDAT_ABSOLUTE_THURSDAY
Thursday.
Definition: reldatefmt.h:154