Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: source/i18n/unicode/dtitvfmt.h

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/i18n/unicode/dtfmtsym.h ('k') | source/i18n/unicode/dtitvinf.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/i18n/unicode/dtitvfmt.h
diff --git a/source/i18n/unicode/dtitvfmt.h b/source/i18n/unicode/dtitvfmt.h
index fb27eec48158d2e8bbf1b7584f24c95d82bdd85f..d163bad60f4c127bd382f171667fa5e9b23e25c7 100644
--- a/source/i18n/unicode/dtitvfmt.h
+++ b/source/i18n/unicode/dtitvfmt.h
@@ -1,5 +1,5 @@
/********************************************************************************
-* Copyright (C) 2008-2013, International Business Machines Corporation and
+* Copyright (C) 2008-2013,2015, International Business Machines Corporation and
* others. All Rights Reserved.
*******************************************************************************
*
@@ -93,9 +93,11 @@ U_NAMESPACE_BEGIN
*
* <P>
* The calendar fields we support for interval formatting are:
- * year, month, date, day-of-week, am-pm, hour, hour-of-day, and minute.
+ * year, month, date, day-of-week, am-pm, hour, hour-of-day, minute, and second
+ * (though we do not currently have specific intervalFormat date for skeletons
+ * with seconds).
* Those calendar fields can be defined in the following order:
- * year > month > date > hour (in day) > minute
+ * year > month > date > hour (in day) > minute > second
*
* The largest different calendar fields between 2 calendars is the
* first different calendar field in above order.
@@ -387,6 +389,9 @@ public:
* Result is appended to existing contents.
* @param fieldPosition On input: an alignment field, if desired.
* On output: the offsets of the alignment field.
+ * There may be multiple instances of a given field type
+ * in an interval format; in this case the fieldPosition
+ * offsets refer to the first instance.
* @param status Output param filled with success/failure status.
* @return Reference to 'appendTo' parameter.
* @stable ICU 4.0
@@ -406,6 +411,9 @@ public:
* Result is appended to existing contents.
* @param fieldPosition On input: an alignment field, if desired.
* On output: the offsets of the alignment field.
+ * There may be multiple instances of a given field type
+ * in an interval format; in this case the fieldPosition
+ * offsets refer to the first instance.
* @param status Output param filled with success/failure status.
* @return Reference to 'appendTo' parameter.
* @stable ICU 4.0
@@ -430,6 +438,9 @@ public:
* Result is appended to existing contents.
* @param fieldPosition On input: an alignment field, if desired.
* On output: the offsets of the alignment field.
+ * There may be multiple instances of a given field type
+ * in an interval format; in this case the fieldPosition
+ * offsets refer to the first instance.
* @param status Output param filled with success/failure status.
* Caller needs to make sure it is SUCCESS
* at the function entrance
@@ -642,27 +653,30 @@ private:
UErrorCode& status);
/**
- * Create a simple date/time formatter from skeleton, given locale,
- * and date time pattern generator.
- *
- * @param skeleton the skeleton on which date format based.
- * @param locale the given locale.
- * @param dtpng the date time pattern generator.
- * @param status Output param to be set to success/failure code.
- * If it is failure, the returned date formatter will
- * be NULL.
- * @return a simple date formatter which the caller owns.
+ * Below are for generating interval patterns local to the formatter
*/
- static SimpleDateFormat* U_EXPORT2 createSDFPatternInstance(
- const UnicodeString& skeleton,
- const Locale& locale,
- DateTimePatternGenerator* dtpng,
- UErrorCode& status);
-
/**
- * Below are for generating interval patterns local to the formatter
+ * Provide an updated FieldPosition posResult based on two formats,
+ * the FieldPosition values for each of them, and the pattern used
+ * to combine them. The idea is for posResult to indicate the first
+ * instance (if any) of the specified field in the combined result,
+ * with correct offsets.
+ *
+ * @param combiningPattern Pattern used to combine pat0 and pat1
+ * @param pat0 Formatted date/time value to replace {0}
+ * @param pos0 FieldPosition within pat0
+ * @param pat1 Formatted date/time value to replace {1}
+ * @param pos1 FieldPosition within pat1
+ * @param posResult FieldPosition to be set to the correct
+ * position of the first field instance when
+ * pat0 and pat1 are combined using combiningPattern
*/
+ static void
+ adjustPosition(UnicodeString& combiningPattern, // has {0} and {1} in it
+ UnicodeString& pat0, FieldPosition& pos0, // pattern and pos corresponding to {0}
+ UnicodeString& pat1, FieldPosition& pos1, // pattern and pos corresponding to {1}
+ FieldPosition& posResult);
/**
@@ -675,6 +689,8 @@ private:
* to be formatted into date interval string
* @param toCalendar calendar set to the to date in date interval
* to be formatted into date interval string
+ * @param fromToOnSameDay TRUE iff from and to dates are on the same day
+ * (any difference is in ampm/hours or below)
* @param appendTo Output parameter to receive result.
* Result is appended to existing contents.
* @param pos On input: an alignment field, if desired.
@@ -684,6 +700,7 @@ private:
*/
UnicodeString& fallbackFormat(Calendar& fromCalendar,
Calendar& toCalendar,
+ UBool fromToOnSameDay,
UnicodeString& appendTo,
FieldPosition& pos,
UErrorCode& status) const;
@@ -874,13 +891,11 @@ private:
* both time and date. Present the date followed by
* the range expression for the time.
* @param format date and time format
- * @param formatLen format string length
* @param datePattern date pattern
* @param field time calendar field: AM_PM, HOUR, MINUTE
* @param status output param set to success/failure code on exit
*/
- void concatSingleDate2TimeInterval(const UChar* format,
- int32_t formatLen,
+ void concatSingleDate2TimeInterval(UnicodeString& format,
const UnicodeString& datePattern,
UCalendarDateFields field,
UErrorCode& status);
@@ -960,16 +975,20 @@ private:
Calendar* fFromCalendar;
Calendar* fToCalendar;
- /**
- * Date time pattern generator
- */
- DateTimePatternGenerator* fDtpng;
+ Locale fLocale;
/**
- * Following are interval information relavent (locale) to this formatter.
+ * Following are interval information relevant (locale) to this formatter.
*/
UnicodeString fSkeleton;
PatternInfo fIntervalPatterns[DateIntervalInfo::kIPI_MAX_INDEX];
+
+ /**
+ * Patterns for fallback formatting.
+ */
+ UnicodeString* fDatePattern;
+ UnicodeString* fTimePattern;
+ UnicodeString* fDateTimeFormat;
};
inline UBool
« no previous file with comments | « source/i18n/unicode/dtfmtsym.h ('k') | source/i18n/unicode/dtitvinf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698