ICU 57.1 57.1
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"
18#include "unicode/ureldatefmt.h"
19#include "unicode/locid.h"
20
25
26#if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION
27
83
170
220
221
223
224class RelativeDateTimeCacheData;
225class SharedNumberFormat;
226class SharedPluralRules;
227class SharedBreakIterator;
228class NumberFormat;
229class UnicodeString;
230
300public:
301
307
313
325 const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status);
326
343 const Locale& locale,
344 NumberFormat *nfToAdopt,
346 UDisplayContext capitalizationContext,
347 UErrorCode& status);
348
354
360 const RelativeDateTimeFormatter& other);
361
367
384 double quantity,
385 UDateDirection direction,
387 UnicodeString& appendTo,
388 UErrorCode& status) const;
389
403 UDateDirection direction,
405 UnicodeString& appendTo,
406 UErrorCode& status) const;
407
408#ifndef U_HIDE_DRAFT_API
427 double offset,
429 UnicodeString& appendTo,
430 UErrorCode& status) const;
431
450 double offset,
452 UnicodeString& appendTo,
453 UErrorCode& status) const;
454#endif /* U_HIDE_DRAFT_API */
455
469 const UnicodeString& relativeDateString,
470 const UnicodeString& timeString,
471 UnicodeString& appendTo,
472 UErrorCode& status) const;
473
480
487
494
495private:
496 const RelativeDateTimeCacheData* fCache;
497 const SharedNumberFormat *fNumberFormat;
498 const SharedPluralRules *fPluralRules;
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
511
512#endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION*/
513#endif
The BreakIterator class implements methods for finding the location of boundaries in text.
Definition brkiter.h:100
A Locale object represents a specific geographical, political, or cultural region.
Definition locid.h:185
Abstract base class for all number formats.
Definition numfmt.h:167
RelativeDateTimeFormatter(const RelativeDateTimeFormatter &other)
Copy constructor.
const NumberFormat & getNumberFormat() const
Returns the NumberFormat this object is using.
RelativeDateTimeFormatter & operator=(const RelativeDateTimeFormatter &other)
Assignment operator.
UDisplayContext getCapitalizationContext() const
Returns the capitalization context.
UDateRelativeDateTimeFormatterStyle getFormatStyle() const
Returns the format style.
UnicodeString & formatNumeric(double offset, URelativeDateTimeUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Format a combination of URelativeDateTimeUnit and numeric offset using a numeric style,...
RelativeDateTimeFormatter(const Locale &locale, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale.
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.
UnicodeString & format(UDateDirection direction, UDateAbsoluteUnit unit, UnicodeString &appendTo, UErrorCode &status) const
Formats a relative date without a quantity.
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".
RelativeDateTimeFormatter(const Locale &locale, NumberFormat *nfToAdopt, UDateRelativeDateTimeFormatterStyle style, UDisplayContext capitalizationContext, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale, NumberFormat, and capitalization context.
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(const Locale &locale, NumberFormat *nfToAdopt, UErrorCode &status)
Create RelativeDateTimeFormatter with given locale and NumberFormat.
virtual ~RelativeDateTimeFormatter()
Destructor.
RelativeDateTimeFormatter(UErrorCode &status)
Create RelativeDateTimeFormatter with default locale.
UObject is the common ICU "boilerplate" class.
Definition uobject.h:221
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:294
C++ API: Locale ID object.
UDateAbsoluteUnit
Represents an absolute unit.
Definition reldatefmt.h:88
@ UDAT_ABSOLUTE_DAY
Day.
Definition reldatefmt.h:138
@ UDAT_ABSOLUTE_FRIDAY
Friday.
Definition reldatefmt.h:126
@ UDAT_ABSOLUTE_YEAR
Year.
Definition reldatefmt.h:156
@ UDAT_ABSOLUTE_WEDNESDAY
Wednesday.
Definition reldatefmt.h:114
@ UDAT_ABSOLUTE_WEEK
Week.
Definition reldatefmt.h:144
@ UDAT_ABSOLUTE_NOW
Now.
Definition reldatefmt.h:162
@ UDAT_ABSOLUTE_THURSDAY
Thursday.
Definition reldatefmt.h:120
@ UDAT_ABSOLUTE_TUESDAY
Tuesday.
Definition reldatefmt.h:108
@ UDAT_ABSOLUTE_MONTH
Month.
Definition reldatefmt.h:150
@ UDAT_ABSOLUTE_SUNDAY
Sunday.
Definition reldatefmt.h:96
@ UDAT_ABSOLUTE_UNIT_COUNT
Count of items in this enum.
Definition reldatefmt.h:168
@ UDAT_ABSOLUTE_MONDAY
Monday.
Definition reldatefmt.h:102
@ UDAT_ABSOLUTE_SATURDAY
Saturday.
Definition reldatefmt.h:132
UDateRelativeUnit
Represents the unit for formatting a relative date.
Definition reldatefmt.h:33
@ UDAT_RELATIVE_DAYS
Days.
Definition reldatefmt.h:57
@ UDAT_RELATIVE_UNIT_COUNT
Count of items in this enum.
Definition reldatefmt.h:81
@ UDAT_RELATIVE_HOURS
Hours.
Definition reldatefmt.h:51
@ UDAT_RELATIVE_MONTHS
Months.
Definition reldatefmt.h:69
@ UDAT_RELATIVE_WEEKS
Weeks.
Definition reldatefmt.h:63
@ UDAT_RELATIVE_YEARS
Years.
Definition reldatefmt.h:75
@ UDAT_RELATIVE_MINUTES
Minutes.
Definition reldatefmt.h:45
@ UDAT_RELATIVE_SECONDS
Seconds.
Definition reldatefmt.h:39
UDateDirection
Represents a direction for an absolute unit e.g "Next Tuesday" or "Last Tuesday".
Definition reldatefmt.h:176
@ UDAT_DIRECTION_PLAIN
Plain, which means the absence of a qualifier.
Definition reldatefmt.h:212
@ UDAT_DIRECTION_THIS
This.
Definition reldatefmt.h:194
@ UDAT_DIRECTION_LAST_2
Two before.
Definition reldatefmt.h:182
@ UDAT_DIRECTION_LAST
Last.
Definition reldatefmt.h:188
@ UDAT_DIRECTION_NEXT
Next.
Definition reldatefmt.h:200
@ UDAT_DIRECTION_NEXT_2
Two after.
Definition reldatefmt.h:206
@ UDAT_DIRECTION_COUNT
Count of items in this enum.
Definition reldatefmt.h:218
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:42
URelativeDateTimeUnit
Represents the unit for formatting a relative date.
Definition ureldatefmt.h:74
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:476
#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_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:129