ICU 56.1  56.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 
37 
43 
49 
56 
62 typedef enum UDateRelativeUnit {
63 
69 
75 
81 
87 
93 
99 
105 
112 
117 typedef enum UDateAbsoluteUnit {
118 
119  // Days of week have to remain together and in order from Sunday to
120  // Saturday.
126 
132 
138 
144 
150 
156 
162 
168 
174 
180 
186 
192 
199 
205 typedef enum UDateDirection {
206 
212 
218 
224 
230 
236 
242 
249 
250 
252 
253 class RelativeDateTimeCacheData;
254 class SharedNumberFormat;
255 class SharedPluralRules;
256 class SharedBreakIterator;
257 class NumberFormat;
258 class UnicodeString;
259 
329 public:
330 
336 
341  RelativeDateTimeFormatter(const Locale& locale, UErrorCode& status);
342 
354  const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status);
355 
372  const Locale& locale,
373  NumberFormat *nfToAdopt,
375  UDisplayContext capitalizationContext,
376  UErrorCode& status);
377 
383 
388  RelativeDateTimeFormatter& operator=(
389  const RelativeDateTimeFormatter& other);
390 
395  virtual ~RelativeDateTimeFormatter();
396 
412  UnicodeString& format(
413  double quantity,
414  UDateDirection direction,
415  UDateRelativeUnit unit,
416  UnicodeString& appendTo,
417  UErrorCode& status) const;
418 
431  UnicodeString& format(
432  UDateDirection direction,
433  UDateAbsoluteUnit unit,
434  UnicodeString& appendTo,
435  UErrorCode& status) const;
436 
449  UnicodeString& combineDateAndTime(
450  const UnicodeString& relativeDateString,
451  const UnicodeString& timeString,
452  UnicodeString& appendTo,
453  UErrorCode& status) const;
454 
460  const NumberFormat& getNumberFormat() const;
461 
467  UDisplayContext getCapitalizationContext() const;
468 
474  UDateRelativeDateTimeFormatterStyle getFormatStyle() const;
475 
476 private:
477  const RelativeDateTimeCacheData* fCache;
478  const SharedNumberFormat *fNumberFormat;
479  const SharedPluralRules *fPluralRules;
481  UDisplayContext fContext;
482  const SharedBreakIterator *fOptBreakIterator;
483  Locale fLocale;
484  void init(
485  NumberFormat *nfToAdopt,
486  BreakIterator *brkIter,
487  UErrorCode &status);
488  void adjustForContext(UnicodeString &) const;
489 };
490 
492 
493 #endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION*/
494 #endif
Count of items in this enum.
Definition: reldatefmt.h:197
Abstract base class for all number formats.
Definition: numfmt.h:172
Everything spelled out.
Definition: reldatefmt.h:36
UDateRelativeDateTimeFormatterStyle
The formatting style.
Definition: reldatefmt.h:31
UDisplayContext
Display context settings.
Abbreviations used when possible.
Definition: reldatefmt.h:42
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:205
Plain, which means the absence of a qualifier.
Definition: reldatefmt.h:241
Formats simple relative dates.
Definition: reldatefmt.h:328
The number of styles.
Definition: reldatefmt.h:54
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:48
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:247
UDateAbsoluteUnit
Represents an absolute unit.
Definition: reldatefmt.h:117
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:293
Count of items in this enum.
Definition: reldatefmt.h:110
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
UDateRelativeUnit
Represents the unit for formatting a relative date.
Definition: reldatefmt.h:62
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:185