ICU 54.1  54.1
reldatefmt.h
Go to the documentation of this file.
1 /*
2 *****************************************************************************
3 * Copyright (C) 2014, 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 
65 typedef enum UDateRelativeUnit {
66 
72 
78 
84 
90 
96 
102 
108 
115 
120 typedef enum UDateAbsoluteUnit {
121 
122  // Days of week have to remain together and in order from Sunday to
123  // Saturday.
129 
135 
141 
147 
153 
159 
165 
171 
177 
183 
189 
195 
202 
208 typedef enum UDateDirection {
209 
215 
221 
227 
233 
239 
245 
252 
253 
255 
256 class RelativeDateTimeCacheData;
257 class SharedNumberFormat;
258 class SharedPluralRules;
259 class SharedBreakIterator;
260 class NumberFormat;
261 class UnicodeString;
262 
332 public:
333 
339 
344  RelativeDateTimeFormatter(const Locale& locale, UErrorCode& status);
345 
357  const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status);
358 
375  const Locale& locale,
376  NumberFormat *nfToAdopt,
378  UDisplayContext capitalizationContext,
379  UErrorCode& status);
380 
386 
391  RelativeDateTimeFormatter& operator=(
392  const RelativeDateTimeFormatter& other);
393 
398  virtual ~RelativeDateTimeFormatter();
399 
415  UnicodeString& format(
416  double quantity,
417  UDateDirection direction,
418  UDateRelativeUnit unit,
419  UnicodeString& appendTo,
420  UErrorCode& status) const;
421 
434  UnicodeString& format(
435  UDateDirection direction,
436  UDateAbsoluteUnit unit,
437  UnicodeString& appendTo,
438  UErrorCode& status) const;
439 
452  UnicodeString& combineDateAndTime(
453  const UnicodeString& relativeDateString,
454  const UnicodeString& timeString,
455  UnicodeString& appendTo,
456  UErrorCode& status) const;
457 
463  const NumberFormat& getNumberFormat() const;
464 
470  UDisplayContext getCapitalizationContext() const;
471 
477  UDateRelativeDateTimeFormatterStyle getFormatStyle() const;
478 private:
479  const RelativeDateTimeCacheData* fCache;
480  const SharedNumberFormat *fNumberFormat;
481  const SharedPluralRules *fPluralRules;
483  UDisplayContext fContext;
484  const SharedBreakIterator *fOptBreakIterator;
485  Locale fLocale;
486  void init(
487  NumberFormat *nfToAdopt,
488  BreakIterator *brkIter,
489  UErrorCode &status);
490  void adjustForContext(UnicodeString &) const;
491 };
492 
494 
495 #endif /* U_HIDE_DRAFT_API */
496 
497 #endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION*/
498 #endif
Count of items in this enum.
Definition: reldatefmt.h:200
Abstract base class for all number formats.
Definition: numfmt.h:172
Everything spelled out.
Definition: reldatefmt.h:39
UDateRelativeDateTimeFormatterStyle
The formatting style.
Definition: reldatefmt.h:33
UDisplayContext
Display context settings.
Abbreviations used when possible.
Definition: reldatefmt.h:45
C API: Display context types (enum values)
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:358
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
The BreakIterator class implements methods for finding the location of boundaries in text...
Definition: brkiter.h:100
UDateDirection
Represents a direction for an absolute unit e.g "Next Tuesday" or "Last Tuesday". ...
Definition: reldatefmt.h:208
Plain, which means the absence of a qualifier.
Definition: reldatefmt.h:244
Formats simple relative dates.
Definition: reldatefmt.h:331
The number of styles.
Definition: reldatefmt.h:57
C++ API: Common ICU base class UObject.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
Use the shortest possible form.
Definition: reldatefmt.h:51
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:476
Count of items in this enum.
Definition: reldatefmt.h:250
UDateAbsoluteUnit
Represents an absolute unit.
Definition: reldatefmt.h:120
C++ API: Locale ID object.
Basic definitions for ICU, for both C and C++ APIs.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:245
Count of items in this enum.
Definition: reldatefmt.h:113
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
UDateRelativeUnit
Represents the unit for formatting a relative date.
Definition: reldatefmt.h:65
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:185