ICU 62.1 62.1
reldatefmt.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) 2014-2016, International Business Machines Corporation and
6* others.
7* All Rights Reserved.
8*****************************************************************************
9*
10* File RELDATEFMT.H
11*****************************************************************************
12*/
13
14#ifndef __RELDATEFMT_H
15#define __RELDATEFMT_H
16
17#include "unicode/utypes.h"
18#include "unicode/uobject.h"
20#include "unicode/ureldatefmt.h"
21#include "unicode/locid.h"
22
28#if !UCONFIG_NO_FORMATTING
29
87
92typedef enum UDateAbsoluteUnit {
93
94 // Days of week have to remain together and in order from Sunday to
95 // Saturday.
101
107
113
119
125
131
137
143
149
155
161
167
168#ifndef U_HIDE_DEPRECATED_API
174#endif // U_HIDE_DEPRECATED_API
176
228
229#if !UCONFIG_NO_BREAK_ITERATION
230
232
233class BreakIterator;
234class RelativeDateTimeCacheData;
235class SharedNumberFormat;
236class SharedPluralRules;
237class SharedBreakIterator;
238class NumberFormat;
239class UnicodeString;
240
310public:
311
317
323
335 const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status);
336
353 const Locale& locale,
358
364
371
377
394 double quantity,
397 UnicodeString& appendTo,
398 UErrorCode& status) const;
399
415 UnicodeString& appendTo,
416 UErrorCode& status) const;
417
436 double offset,
438 UnicodeString& appendTo,
439 UErrorCode& status) const;
440
459 double offset,
461 UnicodeString& appendTo,
462 UErrorCode& status) const;
463
479 UnicodeString& appendTo,
480 UErrorCode& status) const;
481
488
495
502
503private:
504 const RelativeDateTimeCacheData* fCache;
505 const SharedNumberFormat *fNumberFormat;
506 const SharedPluralRules *fPluralRules;
508 UDisplayContext fContext;
509 const SharedBreakIterator *fOptBreakIterator;
510 Locale fLocale;
511 void init(
515 void adjustForContext(UnicodeString &) const;
516};
517
519
520#endif /* !UCONFIG_NO_BREAK_ITERATION */
521#endif /* !UCONFIG_NO_FORMATTING */
522#endif /* __RELDATEFMT_H */
The BreakIterator class implements methods for finding the location of boundaries in text.
Definition brkiter.h:102
"Smart pointer" base class; do not use directly: use LocalPointer etc.
A Locale object represents a specific geographical, political, or cultural region.
Definition locid.h:188
Formats simple relative dates.
Definition reldatefmt.h:309
virtual ~RelativeDateTimeFormatter()
Destructor.
UnicodeString & formatNumeric(double offset, URelativeDateTimeUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Format a combination of URelativeDateTimeUnit and numeric offset using a numeric style,...
UDateRelativeDateTimeFormatterStyle getFormatStyle() const
Returns the format style.
UnicodeString & format(double offset, URelativeDateTimeUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Format a combination of URelativeDateTimeUnit and numeric offset using a text style if possible,...
RelativeDateTimeFormatter(UErrorCode &status)
Create RelativeDateTimeFormatter with default locale.
RelativeDateTimeFormatter(const Locale &locale, NumberFormat *nfToAdopt, UDateRelativeDateTimeFormatterStyle style, UDisplayContext capitalizationContext, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale, NumberFormat, and capitalization context.
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.
RelativeDateTimeFormatter(const Locale &locale, NumberFormat *nfToAdopt, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale and NumberFormat.
UnicodeString & format(UDateDirection direction, UDateAbsoluteUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Formats a relative date without a quantity.
RelativeDateTimeFormatter(const RelativeDateTimeFormatter &other)
Copy constructor.
UDisplayContext getCapitalizationContext() const
Returns the capitalization context.
RelativeDateTimeFormatter & operator=(const RelativeDateTimeFormatter &other)
Assignment operator.
RelativeDateTimeFormatter(const Locale &locale, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale.
const NumberFormat & getNumberFormat() const
Returns the NumberFormat this object is using.
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".
UObject is the common ICU "boilerplate" class.
Definition uobject.h:223
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:287
C++ API: Locale ID object.
UDateAbsoluteUnit
Represents an absolute unit.
Definition reldatefmt.h:92
@ UDAT_ABSOLUTE_DAY
Day.
Definition reldatefmt.h:142
@ UDAT_ABSOLUTE_FRIDAY
Friday.
Definition reldatefmt.h:130
@ UDAT_ABSOLUTE_YEAR
Year.
Definition reldatefmt.h:160
@ UDAT_ABSOLUTE_WEDNESDAY
Wednesday.
Definition reldatefmt.h:118
@ UDAT_ABSOLUTE_WEEK
Week.
Definition reldatefmt.h:148
@ UDAT_ABSOLUTE_NOW
Now.
Definition reldatefmt.h:166
@ UDAT_ABSOLUTE_THURSDAY
Thursday.
Definition reldatefmt.h:124
@ UDAT_ABSOLUTE_TUESDAY
Tuesday.
Definition reldatefmt.h:112
@ UDAT_ABSOLUTE_MONTH
Month.
Definition reldatefmt.h:154
@ UDAT_ABSOLUTE_SUNDAY
Sunday.
Definition reldatefmt.h:100
@ UDAT_ABSOLUTE_UNIT_COUNT
One more than the highest normal UDateAbsoluteUnit value.
Definition reldatefmt.h:173
@ UDAT_ABSOLUTE_MONDAY
Monday.
Definition reldatefmt.h:106
@ UDAT_ABSOLUTE_SATURDAY
Saturday.
Definition reldatefmt.h:136
UDateRelativeUnit
Represents the unit for formatting a relative date.
Definition reldatefmt.h:35
@ UDAT_RELATIVE_DAYS
Days.
Definition reldatefmt.h:59
@ UDAT_RELATIVE_UNIT_COUNT
One more than the highest normal UDateRelativeUnit value.
Definition reldatefmt.h:84
@ UDAT_RELATIVE_HOURS
Hours.
Definition reldatefmt.h:53
@ UDAT_RELATIVE_MONTHS
Months.
Definition reldatefmt.h:71
@ UDAT_RELATIVE_WEEKS
Weeks.
Definition reldatefmt.h:65
@ UDAT_RELATIVE_YEARS
Years.
Definition reldatefmt.h:77
@ UDAT_RELATIVE_MINUTES
Minutes.
Definition reldatefmt.h:47
@ UDAT_RELATIVE_SECONDS
Seconds.
Definition reldatefmt.h:41
UDateDirection
Represents a direction for an absolute unit e.g "Next Tuesday" or "Last Tuesday".
Definition reldatefmt.h:182
@ UDAT_DIRECTION_PLAIN
Plain, which means the absence of a qualifier.
Definition reldatefmt.h:218
@ UDAT_DIRECTION_THIS
This.
Definition reldatefmt.h:200
@ UDAT_DIRECTION_LAST_2
Two before.
Definition reldatefmt.h:188
@ UDAT_DIRECTION_LAST
Last.
Definition reldatefmt.h:194
@ UDAT_DIRECTION_NEXT
Next.
Definition reldatefmt.h:206
@ UDAT_DIRECTION_NEXT_2
Two after.
Definition reldatefmt.h:212
@ UDAT_DIRECTION_COUNT
One more than the highest normal UDateDirection value.
Definition reldatefmt.h:225
C API: Display context types (enum values)
UDisplayContext
Display context settings.
C++ API: Common ICU base class UObject.
C API: URelativeDateTimeFormatter, relative date formatting of unit + numeric offset.
UDateRelativeDateTimeFormatterStyle
The formatting style.
Definition ureldatefmt.h:44
URelativeDateTimeUnit
Represents the unit for formatting a relative date.
Definition ureldatefmt.h:77
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition utypes.h:396
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition utypes.h:360
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137