SILENT KILLERPanel

Current Path: > > opt > > alt > > libicu > usr > include > unicode


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt//alt//libicu/usr/include/unicode

NameTypeSizeLast ModifiedActions
alphaindex.h File 27055 bytes November 07 2019 06:58:02.
appendable.h File 8632 bytes November 07 2019 06:58:02.
basictz.h File 9055 bytes November 07 2019 06:58:02.
brkiter.h File 28303 bytes November 07 2019 06:58:02.
bytestream.h File 9767 bytes November 07 2019 06:58:02.
bytestrie.h File 19718 bytes November 07 2019 06:58:02.
bytestriebuilder.h File 7186 bytes November 07 2019 06:58:02.
calendar.h File 107581 bytes November 07 2019 06:58:02.
caniter.h File 7550 bytes November 07 2019 06:58:02.
casemap.h File 25871 bytes November 07 2019 06:58:02.
char16ptr.h File 7331 bytes November 07 2019 06:58:02.
chariter.h File 24573 bytes November 07 2019 06:58:02.
choicfmt.h File 24418 bytes November 07 2019 06:58:02.
coleitr.h File 14033 bytes November 07 2019 06:58:02.
coll.h File 56928 bytes November 07 2019 06:58:02.
compactdecimalformat.h File 6971 bytes November 07 2019 06:58:02.
curramt.h File 3782 bytes November 07 2019 06:58:02.
currpinf.h File 7412 bytes November 07 2019 06:58:02.
currunit.h File 4082 bytes November 07 2019 06:58:02.
datefmt.h File 41334 bytes November 07 2019 06:58:02.
dbbi.h File 1133 bytes November 07 2019 06:58:02.
dcfmtsym.h File 20584 bytes November 07 2019 06:58:02.
decimfmt.h File 89926 bytes November 07 2019 06:58:02.
docmain.h File 7123 bytes November 07 2019 06:58:02.
dtfmtsym.h File 38548 bytes November 07 2019 06:58:02.
dtintrv.h File 3869 bytes November 07 2019 06:58:02.
dtitvfmt.h File 47676 bytes November 07 2019 06:58:02.
dtitvinf.h File 18902 bytes November 07 2019 06:58:02.
dtptngen.h File 25681 bytes November 07 2019 06:58:02.
dtrule.h File 8831 bytes November 07 2019 06:58:02.
edits.h File 21169 bytes November 07 2019 06:58:02.
enumset.h File 2130 bytes November 07 2019 06:58:02.
errorcode.h File 4894 bytes November 07 2019 06:58:02.
fieldpos.h File 8838 bytes November 07 2019 06:58:02.
filteredbrk.h File 5364 bytes November 07 2019 06:58:02.
fmtable.h File 24946 bytes November 07 2019 06:58:02.
format.h File 12741 bytes November 07 2019 06:58:02.
formattedvalue.h File 9963 bytes November 07 2019 06:58:02.
fpositer.h File 3047 bytes November 07 2019 06:58:02.
gender.h File 3347 bytes November 07 2019 06:58:02.
gregocal.h File 32331 bytes November 07 2019 06:58:02.
icudataver.h File 1051 bytes November 07 2019 06:58:02.
icuplug.h File 12166 bytes November 07 2019 06:58:02.
idna.h File 12938 bytes November 07 2019 06:58:02.
listformatter.h File 9644 bytes November 07 2019 06:58:02.
localebuilder.h File 10792 bytes November 07 2019 06:58:02.
localpointer.h File 20159 bytes November 07 2019 06:58:02.
locdspnm.h File 7231 bytes November 07 2019 06:58:02.
locid.h File 46015 bytes November 07 2019 06:58:02.
measfmt.h File 11710 bytes November 07 2019 06:58:02.
measunit.h File 90283 bytes November 07 2019 06:58:02.
measure.h File 4361 bytes November 07 2019 06:58:02.
messagepattern.h File 34460 bytes November 07 2019 06:58:02.
msgfmt.h File 45099 bytes November 07 2019 06:58:02.
normalizer2.h File 34789 bytes November 07 2019 06:58:02.
normlzr.h File 31476 bytes November 07 2019 06:58:02.
nounit.h File 2693 bytes November 07 2019 06:58:02.
numberformatter.h File 86654 bytes November 07 2019 06:58:02.
numberrangeformatter.h File 30653 bytes November 07 2019 06:58:02.
numfmt.h File 50530 bytes November 07 2019 06:58:02.
numsys.h File 7303 bytes November 07 2019 06:58:02.
parseerr.h File 3155 bytes November 07 2019 06:58:02.
parsepos.h File 5630 bytes November 07 2019 06:58:02.
platform.h File 27754 bytes November 07 2019 06:58:02.
plurfmt.h File 25786 bytes November 07 2019 06:58:02.
plurrule.h File 18774 bytes November 07 2019 06:58:02.
ptypes.h File 3577 bytes November 07 2019 06:58:02.
putil.h File 6487 bytes November 07 2019 06:58:02.
rbbi.h File 27053 bytes November 07 2019 06:58:02.
rbnf.h File 50984 bytes November 07 2019 06:58:02.
rbtz.h File 15838 bytes November 07 2019 06:58:02.
regex.h File 86320 bytes November 07 2019 06:58:02.
region.h File 9342 bytes November 07 2019 06:58:02.
reldatefmt.h File 22910 bytes November 07 2019 06:58:02.
rep.h File 9726 bytes November 07 2019 06:58:02.
resbund.h File 18440 bytes November 07 2019 06:58:02.
schriter.h File 6410 bytes November 07 2019 06:58:02.
scientificnumberformatter.h File 6474 bytes November 07 2019 06:58:02.
search.h File 22742 bytes November 07 2019 06:58:02.
selfmt.h File 14579 bytes November 07 2019 06:58:02.
simpleformatter.h File 12826 bytes November 07 2019 06:58:02.
simpletz.h File 46389 bytes November 07 2019 06:58:02.
smpdtfmt.h File 72597 bytes November 07 2019 06:58:02.
sortkey.h File 11383 bytes November 07 2019 06:58:02.
std_string.h File 1015 bytes November 07 2019 06:58:02.
strenum.h File 10279 bytes November 07 2019 06:58:02.
stringoptions.h File 5926 bytes November 07 2019 06:58:02.
stringpiece.h File 6610 bytes November 07 2019 06:58:02.
stringtriebuilder.h File 15636 bytes November 07 2019 06:58:02.
stsearch.h File 21801 bytes November 07 2019 06:58:02.
symtable.h File 4312 bytes November 07 2019 06:58:02.
tblcoll.h File 37272 bytes November 07 2019 06:58:02.
timezone.h File 42189 bytes November 07 2019 06:58:02.
tmunit.h File 3371 bytes November 07 2019 06:58:02.
tmutamt.h File 4918 bytes November 07 2019 06:58:02.
tmutfmt.h File 7977 bytes November 07 2019 06:58:02.
translit.h File 67339 bytes November 07 2019 06:58:02.
tzfmt.h File 43846 bytes November 07 2019 06:58:02.
tznames.h File 17190 bytes November 07 2019 06:58:02.
tzrule.h File 36170 bytes November 07 2019 06:58:02.
tztrans.h File 6214 bytes November 07 2019 06:58:02.
ubidi.h File 91711 bytes November 07 2019 06:58:02.
ubiditransform.h File 12950 bytes November 07 2019 06:58:02.
ubrk.h File 24547 bytes November 07 2019 06:58:02.
ucal.h File 56876 bytes November 07 2019 06:58:02.
ucasemap.h File 15546 bytes November 07 2019 06:58:02.
ucat.h File 5484 bytes November 07 2019 06:58:02.
uchar.h File 144035 bytes November 07 2019 06:58:02.
ucharstrie.h File 21569 bytes November 07 2019 06:58:02.
ucharstriebuilder.h File 7316 bytes November 07 2019 06:58:02.
uchriter.h File 13457 bytes November 07 2019 06:58:02.
uclean.h File 11474 bytes November 07 2019 06:58:02.
ucnv.h File 85085 bytes November 07 2019 06:58:02.
ucnv_cb.h File 6748 bytes November 07 2019 06:58:02.
ucnv_err.h File 21492 bytes November 07 2019 06:58:02.
ucnvsel.h File 6283 bytes November 07 2019 06:58:02.
ucol.h File 62864 bytes November 07 2019 06:58:02.
ucoleitr.h File 9684 bytes November 07 2019 06:58:02.
uconfig.h File 12338 bytes November 07 2019 06:58:02.
ucpmap.h File 5709 bytes November 07 2019 06:58:02.
ucptrie.h File 22824 bytes November 07 2019 06:58:02.
ucsdet.h File 15018 bytes November 07 2019 06:58:02.
ucurr.h File 16536 bytes November 07 2019 06:58:02.
udat.h File 62267 bytes November 07 2019 06:58:02.
udata.h File 15905 bytes November 07 2019 06:58:02.
udateintervalformat.h File 10272 bytes November 07 2019 06:58:02.
udatpg.h File 26564 bytes November 07 2019 06:58:02.
udisplaycontext.h File 6029 bytes November 07 2019 06:58:02.
uenum.h File 7970 bytes November 07 2019 06:58:02.
ufieldpositer.h File 4461 bytes November 07 2019 06:58:02.
uformattable.h File 11198 bytes November 07 2019 06:58:02.
uformattedvalue.h File 12430 bytes November 07 2019 06:58:02.
ugender.h File 2052 bytes November 07 2019 06:58:02.
uidna.h File 34169 bytes November 07 2019 06:58:02.
uiter.h File 23319 bytes November 07 2019 06:58:02.
uldnames.h File 10702 bytes November 07 2019 06:58:02.
ulistformatter.h File 9043 bytes November 07 2019 06:58:02.
uloc.h File 51971 bytes November 07 2019 06:58:02.
ulocdata.h File 11533 bytes November 07 2019 06:58:02.
umachine.h File 13509 bytes November 07 2019 06:58:02.
umisc.h File 1365 bytes November 07 2019 06:58:02.
umsg.h File 24812 bytes November 07 2019 06:58:02.
umutablecptrie.h File 8477 bytes November 07 2019 06:58:02.
unifilt.h File 3716 bytes November 07 2019 06:58:02.
unifunct.h File 4079 bytes November 07 2019 06:58:02.
unimatch.h File 6184 bytes November 07 2019 06:58:02.
unirepl.h File 3403 bytes November 07 2019 06:58:02.
uniset.h File 66440 bytes November 07 2019 06:58:02.
unistr.h File 174477 bytes November 07 2019 06:58:02.
unorm.h File 20938 bytes November 07 2019 06:58:02.
unorm2.h File 25254 bytes November 07 2019 06:58:02.
unum.h File 54832 bytes November 07 2019 06:58:02.
unumberformatter.h File 25795 bytes November 07 2019 06:58:02.
unumsys.h File 7387 bytes November 07 2019 06:58:02.
uobject.h File 11106 bytes November 07 2019 06:58:02.
upluralrules.h File 8068 bytes November 07 2019 06:58:02.
uregex.h File 73784 bytes November 07 2019 06:58:02.
uregion.h File 10073 bytes November 07 2019 06:58:02.
ureldatefmt.h File 17670 bytes November 07 2019 06:58:02.
urename.h File 134551 bytes November 07 2019 06:58:02.
urep.h File 5507 bytes November 07 2019 06:58:02.
ures.h File 37415 bytes November 07 2019 06:58:02.
uscript.h File 27510 bytes November 07 2019 06:58:02.
usearch.h File 39038 bytes November 07 2019 06:58:02.
uset.h File 40958 bytes November 07 2019 06:58:02.
usetiter.h File 9719 bytes November 07 2019 06:58:02.
ushape.h File 18432 bytes November 07 2019 06:58:02.
uspoof.h File 67613 bytes November 07 2019 06:58:02.
usprep.h File 8331 bytes November 07 2019 06:58:02.
ustdio.h File 39469 bytes November 07 2019 06:58:02.
ustream.h File 1844 bytes November 07 2019 06:58:02.
ustring.h File 74211 bytes November 07 2019 06:58:02.
ustringtrie.h File 3224 bytes November 07 2019 06:58:02.
utext.h File 59505 bytes November 07 2019 06:58:02.
utf.h File 8046 bytes November 07 2019 06:58:02.
utf16.h File 22866 bytes November 07 2019 06:58:02.
utf32.h File 763 bytes November 07 2019 06:58:02.
utf8.h File 30682 bytes November 07 2019 06:58:02.
utf_old.h File 44827 bytes November 07 2019 06:58:02.
utmscale.h File 14113 bytes November 07 2019 06:58:02.
utrace.h File 14219 bytes November 07 2019 06:58:02.
utrans.h File 26157 bytes November 07 2019 06:58:02.
utypes.h File 31108 bytes November 07 2019 06:58:02.
uvernum.h File 6832 bytes November 07 2019 06:58:02.
uversion.h File 6865 bytes November 07 2019 06:58:02.
vtzone.h File 20651 bytes November 07 2019 06:58:02.

Reading File: //opt//alt//libicu/usr/include/unicode/ureldatefmt.h

// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*****************************************************************************************
* Copyright (C) 2016, International Business Machines
* Corporation and others. All Rights Reserved.
*****************************************************************************************
*/

#ifndef URELDATEFMT_H
#define URELDATEFMT_H

#include "unicode/utypes.h"

#if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION

#include "unicode/unum.h"
#include "unicode/udisplaycontext.h"
#include "unicode/localpointer.h"
#include "unicode/uformattedvalue.h"

/**
 * \file
 * \brief C API: URelativeDateTimeFormatter, relative date formatting of unit + numeric offset.
 *
 * Provides simple formatting of relative dates, in two ways
 * <ul>
 *   <li>relative dates with a quantity e.g "in 5 days"</li>
 *   <li>relative dates without a quantity e.g "next Tuesday"</li>
 * </ul>
 * <p>
 * This does not provide compound formatting for multiple units,
 * other than the ability to combine a time string with a relative date,
 * as in "next Tuesday at 3:45 PM". It also does not provide support
 * for determining which unit to use, such as deciding between "in 7 days"
 * and "in 1 week".
 *
 * @stable ICU 57
 */

/**
 * The formatting style
 * @stable ICU 54
 */
typedef enum UDateRelativeDateTimeFormatterStyle {
  /**
   * Everything spelled out.
   * @stable ICU 54
   */
  UDAT_STYLE_LONG,

  /**
   * Abbreviations used when possible.
   * @stable ICU 54
   */
  UDAT_STYLE_SHORT,

  /**
   * Use the shortest possible form.
   * @stable ICU 54
   */
  UDAT_STYLE_NARROW,

#ifndef U_HIDE_DEPRECATED_API
    /**
     * One more than the highest normal UDateRelativeDateTimeFormatterStyle value.
     * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
     */
    UDAT_STYLE_COUNT
#endif  /* U_HIDE_DEPRECATED_API */
} UDateRelativeDateTimeFormatterStyle;

/**
 * Represents the unit for formatting a relative date. e.g "in 5 days"
 * or "next year"
 * @stable ICU 57
 */
typedef enum URelativeDateTimeUnit {
    /**
     * Specifies that relative unit is year, e.g. "last year",
     * "in 5 years". 
     * @stable ICU 57
     */
    UDAT_REL_UNIT_YEAR,
    /**
     * Specifies that relative unit is quarter, e.g. "last quarter",
     * "in 5 quarters".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_QUARTER,
    /**
     * Specifies that relative unit is month, e.g. "last month",
     * "in 5 months".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_MONTH,
    /**
     * Specifies that relative unit is week, e.g. "last week",
     * "in 5 weeks".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_WEEK,
    /**
     * Specifies that relative unit is day, e.g. "yesterday",
     * "in 5 days".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_DAY,
    /**
     * Specifies that relative unit is hour, e.g. "1 hour ago",
     * "in 5 hours".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_HOUR,
    /**
     * Specifies that relative unit is minute, e.g. "1 minute ago",
     * "in 5 minutes".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_MINUTE,
    /**
     * Specifies that relative unit is second, e.g. "1 second ago",
     * "in 5 seconds".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_SECOND,
    /**
     * Specifies that relative unit is Sunday, e.g. "last Sunday",
     * "this Sunday", "next Sunday", "in 5 Sundays".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_SUNDAY,
    /**
     * Specifies that relative unit is Monday, e.g. "last Monday",
     * "this Monday", "next Monday", "in 5 Mondays".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_MONDAY,
    /**
     * Specifies that relative unit is Tuesday, e.g. "last Tuesday",
     * "this Tuesday", "next Tuesday", "in 5 Tuesdays".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_TUESDAY,
    /**
     * Specifies that relative unit is Wednesday, e.g. "last Wednesday",
     * "this Wednesday", "next Wednesday", "in 5 Wednesdays".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_WEDNESDAY,
    /**
     * Specifies that relative unit is Thursday, e.g. "last Thursday",
     * "this Thursday", "next Thursday", "in 5 Thursdays". 
     * @stable ICU 57
     */
    UDAT_REL_UNIT_THURSDAY,
    /**
     * Specifies that relative unit is Friday, e.g. "last Friday",
     * "this Friday", "next Friday", "in 5 Fridays".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_FRIDAY,
    /**
     * Specifies that relative unit is Saturday, e.g. "last Saturday",
     * "this Saturday", "next Saturday", "in 5 Saturdays".
     * @stable ICU 57
     */
    UDAT_REL_UNIT_SATURDAY,
#ifndef U_HIDE_DEPRECATED_API
    /**
     * One more than the highest normal URelativeDateTimeUnit value.
     * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
     */
    UDAT_REL_UNIT_COUNT
#endif  /* U_HIDE_DEPRECATED_API */
} URelativeDateTimeUnit;

#ifndef U_HIDE_DRAFT_API
/**
 * FieldPosition and UFieldPosition selectors for format fields
 * defined by RelativeDateTimeFormatter.
 * @draft ICU 64
 */
typedef enum URelativeDateTimeFormatterField {
    /**
     * Represents a literal text string, like "tomorrow" or "days ago".
     * @draft ICU 64
     */
    UDAT_REL_LITERAL_FIELD,
    /**
     * Represents a number quantity, like "3" in "3 days ago".
     * @draft ICU 64
     */
    UDAT_REL_NUMERIC_FIELD,
} URelativeDateTimeFormatterField;
#endif // U_HIDE_DRAFT_API


/**
 * Opaque URelativeDateTimeFormatter object for use in C programs.
 * @stable ICU 57
 */
struct URelativeDateTimeFormatter;
typedef struct URelativeDateTimeFormatter URelativeDateTimeFormatter;  /**< C typedef for struct URelativeDateTimeFormatter. @stable ICU 57 */


/**
 * Open a new URelativeDateTimeFormatter object for a given locale using the
 * specified width and capitalizationContext, along with a number formatter
 * (if desired) to override the default formatter that would be used for
 * display of numeric field offsets. The default formatter typically rounds
 * toward 0 and has a minimum of 0 fraction digits and a maximum of 3
 * fraction digits (i.e. it will show as many decimal places as necessary
 * up to 3, without showing trailing 0s).
 *
 * @param locale
 *          The locale
 * @param nfToAdopt
 *          A number formatter to set for this URelativeDateTimeFormatter
 *          object (instead of the default decimal formatter). Ownership of
 *          this UNumberFormat object will pass to the URelativeDateTimeFormatter
 *          object (the URelativeDateTimeFormatter adopts the UNumberFormat),
 *          which becomes responsible for closing it. If the caller wishes to
 *          retain ownership of the UNumberFormat object, the caller must clone
 *          it (with unum_clone) and pass the clone to ureldatefmt_open. May be
 *          NULL to use the default decimal formatter.
 * @param width
 *          The width - wide, short, narrow, etc.
 * @param capitalizationContext
 *          A value from UDisplayContext that pertains to capitalization, e.g.
 *          UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE.
 * @param status
 *          A pointer to a UErrorCode to receive any errors.
 * @return
 *          A pointer to a URelativeDateTimeFormatter object for the specified locale,
 *          or NULL if an error occurred.
 * @stable ICU 57
 */
U_STABLE URelativeDateTimeFormatter* U_EXPORT2
ureldatefmt_open( const char*          locale,
                  UNumberFormat*       nfToAdopt,
                  UDateRelativeDateTimeFormatterStyle width,
                  UDisplayContext      capitalizationContext,
                  UErrorCode*          status );

/**
 * Close a URelativeDateTimeFormatter object. Once closed it may no longer be used.
 * @param reldatefmt
 *            The URelativeDateTimeFormatter object to close.
 * @stable ICU 57
 */
U_STABLE void U_EXPORT2
ureldatefmt_close(URelativeDateTimeFormatter *reldatefmt);

#ifndef U_HIDE_DRAFT_API
struct UFormattedRelativeDateTime;
/**
 * Opaque struct to contain the results of a URelativeDateTimeFormatter operation.
 * @draft ICU 64
 */
typedef struct UFormattedRelativeDateTime UFormattedRelativeDateTime;

/**
 * Creates an object to hold the result of a URelativeDateTimeFormatter
 * operation. The object can be used repeatedly; it is cleared whenever
 * passed to a format function.
 *
 * @param ec Set if an error occurs.
 * @return A pointer needing ownership.
 * @draft ICU 64
 */
U_DRAFT UFormattedRelativeDateTime* U_EXPORT2
ureldatefmt_openResult(UErrorCode* ec);

/**
 * Returns a representation of a UFormattedRelativeDateTime as a UFormattedValue,
 * which can be subsequently passed to any API requiring that type.
 *
 * The returned object is owned by the UFormattedRelativeDateTime and is valid
 * only as long as the UFormattedRelativeDateTime is present and unchanged in memory.
 *
 * You can think of this method as a cast between types.
 *
 * @param ufrdt The object containing the formatted string.
 * @param ec Set if an error occurs.
 * @return A UFormattedValue owned by the input object.
 * @draft ICU 64
 */
U_DRAFT const UFormattedValue* U_EXPORT2
ureldatefmt_resultAsValue(const UFormattedRelativeDateTime* ufrdt, UErrorCode* ec);

/**
 * Releases the UFormattedRelativeDateTime created by ureldatefmt_openResult.
 *
 * @param ufrdt The object to release.
 * @draft ICU 64
 */
U_DRAFT void U_EXPORT2
ureldatefmt_closeResult(UFormattedRelativeDateTime* ufrdt);
#endif  /* U_HIDE_DRAFT_API */


#if U_SHOW_CPLUSPLUS_API

U_NAMESPACE_BEGIN

/**
 * \class LocalURelativeDateTimeFormatterPointer
 * "Smart pointer" class, closes a URelativeDateTimeFormatter via ureldatefmt_close().
 * For most methods see the LocalPointerBase base class.
 *
 * @see LocalPointerBase
 * @see LocalPointer
 * @stable ICU 57
 */
U_DEFINE_LOCAL_OPEN_POINTER(LocalURelativeDateTimeFormatterPointer, URelativeDateTimeFormatter, ureldatefmt_close);

#ifndef U_HIDE_DRAFT_API
/**
 * \class LocalUFormattedRelativeDateTimePointer
 * "Smart pointer" class, closes a UFormattedRelativeDateTime via ureldatefmt_closeResult().
 * For most methods see the LocalPointerBase base class.
 *
 * @see LocalPointerBase
 * @see LocalPointer
 * @draft ICU 64
 */
U_DEFINE_LOCAL_OPEN_POINTER(LocalUFormattedRelativeDateTimePointer, UFormattedRelativeDateTime, ureldatefmt_closeResult);
#endif  /* U_HIDE_DRAFT_API */

U_NAMESPACE_END

#endif

/**
 * Format a combination of URelativeDateTimeUnit and numeric
 * offset using a numeric style, e.g. "1 week ago", "in 1 week",
 * "5 weeks ago", "in 5 weeks".
 *
 * @param reldatefmt
 *          The URelativeDateTimeFormatter object specifying the
 *          format conventions.
 * @param offset
 *          The signed offset for the specified unit. This will
 *          be formatted according to this object's UNumberFormat
 *          object.
 * @param unit
 *          The unit to use when formatting the relative
 *          date, e.g. UDAT_REL_UNIT_WEEK, UDAT_REL_UNIT_FRIDAY.
 * @param result
 *          A pointer to a buffer to receive the formatted result.
 * @param resultCapacity
 *          The maximum size of result.
 * @param status
 *          A pointer to a UErrorCode to receive any errors. In
 *          case of error status, the contents of result are
 *          undefined.
 * @return
 *          The length of the formatted result; may be greater
 *          than resultCapacity, in which case an error is returned.
 * @stable ICU 57
 */
U_STABLE int32_t U_EXPORT2
ureldatefmt_formatNumeric( const URelativeDateTimeFormatter* reldatefmt,
                    double                offset,
                    URelativeDateTimeUnit unit,
                    UChar*                result,
                    int32_t               resultCapacity,
                    UErrorCode*           status);

#ifndef U_HIDE_DRAFT_API
/**
 * Format a combination of URelativeDateTimeUnit and numeric
 * offset using a numeric style, e.g. "1 week ago", "in 1 week",
 * "5 weeks ago", "in 5 weeks".
 *
 * @param reldatefmt
 *          The URelativeDateTimeFormatter object specifying the
 *          format conventions.
 * @param offset
 *          The signed offset for the specified unit. This will
 *          be formatted according to this object's UNumberFormat
 *          object.
 * @param unit
 *          The unit to use when formatting the relative
 *          date, e.g. UDAT_REL_UNIT_WEEK, UDAT_REL_UNIT_FRIDAY.
 * @param result
 *          A pointer to a UFormattedRelativeDateTime to populate.
 * @param status
 *          A pointer to a UErrorCode to receive any errors. In
 *          case of error status, the contents of result are
 *          undefined.
 * @draft ICU 64
 */
U_DRAFT void U_EXPORT2
ureldatefmt_formatNumericToResult(
    const URelativeDateTimeFormatter* reldatefmt,
    double                            offset,
    URelativeDateTimeUnit             unit,
    UFormattedRelativeDateTime*       result,
    UErrorCode*                       status);
#endif  /* U_HIDE_DRAFT_API */

/**
 * Format a combination of URelativeDateTimeUnit and numeric offset
 * using a text style if possible, e.g. "last week", "this week",
 * "next week", "yesterday", "tomorrow". Falls back to numeric
 * style if no appropriate text term is available for the specified
 * offset in the object's locale.
 *
 * @param reldatefmt
 *          The URelativeDateTimeFormatter object specifying the
 *          format conventions.
 * @param offset
 *          The signed offset for the specified unit.
 * @param unit
 *          The unit to use when formatting the relative
 *          date, e.g. UDAT_REL_UNIT_WEEK, UDAT_REL_UNIT_FRIDAY.
 * @param result
 *          A pointer to a buffer to receive the formatted result.
 * @param resultCapacity
 *          The maximum size of result.
 * @param status
 *          A pointer to a UErrorCode to receive any errors. In
 *          case of error status, the contents of result are
 *          undefined.
 * @return
 *          The length of the formatted result; may be greater
 *          than resultCapacity, in which case an error is returned.
 * @stable ICU 57
 */
U_STABLE int32_t U_EXPORT2
ureldatefmt_format( const URelativeDateTimeFormatter* reldatefmt,
                    double                offset,
                    URelativeDateTimeUnit unit,
                    UChar*                result,
                    int32_t               resultCapacity,
                    UErrorCode*           status);

#ifndef U_HIDE_DRAFT_API
/**
 * Format a combination of URelativeDateTimeUnit and numeric offset
 * using a text style if possible, e.g. "last week", "this week",
 * "next week", "yesterday", "tomorrow". Falls back to numeric
 * style if no appropriate text term is available for the specified
 * offset in the object's locale.
 *
 * This method populates a UFormattedRelativeDateTime, which exposes more
 * information than the string populated by format().
 *
 * @param reldatefmt
 *          The URelativeDateTimeFormatter object specifying the
 *          format conventions.
 * @param offset
 *          The signed offset for the specified unit.
 * @param unit
 *          The unit to use when formatting the relative
 *          date, e.g. UDAT_REL_UNIT_WEEK, UDAT_REL_UNIT_FRIDAY.
 * @param result
 *          A pointer to a UFormattedRelativeDateTime to populate.
 * @param status
 *          A pointer to a UErrorCode to receive any errors. In
 *          case of error status, the contents of result are
 *          undefined.
 * @draft ICU 64
 */
U_DRAFT void U_EXPORT2
ureldatefmt_formatToResult(
    const URelativeDateTimeFormatter* reldatefmt,
    double                            offset,
    URelativeDateTimeUnit             unit,
    UFormattedRelativeDateTime*       result,
    UErrorCode*                       status);
#endif  /* U_HIDE_DRAFT_API */

/**
 * Combines a relative date string and a time string in this object's
 * locale. This is done with the same date-time separator used for the
 * default calendar in this locale to produce a result such as
 * "yesterday at 3:45 PM".
 *
 * @param reldatefmt
 *          The URelativeDateTimeFormatter object specifying the format conventions.
 * @param relativeDateString
 *          The relative date string.
 * @param relativeDateStringLen
 *          The length of relativeDateString; may be -1 if relativeDateString
 *          is zero-terminated.
 * @param timeString
 *          The time string.
 * @param timeStringLen
 *          The length of timeString; may be -1 if timeString is zero-terminated.
 * @param result
 *          A pointer to a buffer to receive the formatted result.
 * @param resultCapacity
 *          The maximum size of result.
 * @param status
 *          A pointer to a UErrorCode to receive any errors. In case of error status,
 *          the contents of result are undefined.
 * @return
 *          The length of the formatted result; may be greater than resultCapacity,
 *          in which case an error is returned.
 * @stable ICU 57
 */
U_STABLE int32_t U_EXPORT2
ureldatefmt_combineDateAndTime( const URelativeDateTimeFormatter* reldatefmt,
                    const UChar *     relativeDateString,
                    int32_t           relativeDateStringLen,
                    const UChar *     timeString,
                    int32_t           timeStringLen,
                    UChar*            result,
                    int32_t           resultCapacity,
                    UErrorCode*       status );

#endif /* !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION */

#endif

SILENT KILLER Tool