Lines Matching +full:not +full:- +full:date
4 * Copyright (C) 2008-2016, International Business Machines Corporation and
21 * \brief C++ API: Format and parse date interval in a language-independent manner.
37 * DateIntervalFormat is a class for formatting and parsing date
38 * intervals in a language-independent manner.
39 * Only formatting is supported, parsing is not supported.
42 * Date interval means from one date to another date,
51 * For example, the date interval format from "Jan 11, 2008" to "Jan 18,. 2008"
52 * is "Jan 11-18, 2008" for English.
54 * although initially, parsing is not supported.
57 * There is no structural information in date time patterns.
58 * For any punctuations and string literals inside a date time pattern,
59 * we do not know whether it is just a separator, or a prefix, or a suffix.
60 * Without such information, so, it is difficult to generate a sub-pattern
61 * (or super-pattern) by algorithm.
62 * So, formatting a DateInterval is pattern-driven. It is very
64 * We introduce class DateIntervalInfo to save date interval
65 * patterns, similar to date time pattern in SimpleDateFormat.
87 * For those non-digit calendar fields, the pattern letter length is
93 * in date time patterns, will be returned without honor the field pattern
98 * year, month, date, day-of-week, am-pm, hour, hour-of-day, minute, and second
99 * (though we do not currently have specific intervalFormat date for skeletons
102 * year > month > date > hour (in day) > minute > second
111 * For other calendar fields, the compact interval formatting is not
112 * supported. And the interval format will be fall back to fall-back
113 * patterns, which is mostly "{date0} - {date1}".
116 * There is a set of pre-defined static skeleton strings.
117 * There are pre-defined interval patterns for those pre-defined skeletons
121 * is "year", the date interval pattern is "MMM d, yyyy - MMM d, yyyy",
122 * such as "Jan 10, 2007 - Jan 10, 2008".
124 * the date interval pattern is "MMM d - MMM d, yyyy",
125 * such as "Jan 10 - Feb 10, 2007".
127 * the date interval pattern is "MMM d-d, yyyy", such as "Jan 10-20, 2007".
129 * For date skeleton, the interval patterns when year, or month, or date is
135 * If a skeleton is not found in a locale's DateIntervalInfo, which means
136 * the interval patterns for the skeleton is not defined in resource file,
139 * If the interval "fallback" pattern is not defined, the default fall-back
140 * is "{date0} - {data1}".
143 * For the combination of date and time,
147 * when the year, month, or day differs, falls back to fall-back
152 * "Jan 10, 2007 10:10 am - Jan 11, 2007 10:10am"
155 * otherwise, present the date followed by the range expression
158 * to "Jan 10, 2007 11:10am" is "Jan 10, 2007 10:10 am - 11:10am"
164 * If two dates are the same, the interval pattern is the single date pattern.
169 * the interval pattern is the single date pattern.
175 * formatting: time zone, calendar type, pattern, date format symbols,
176 * and date interval patterns.
181 * Users are encouraged to created date interval formatter this way and
182 * to use the pre-defined skeleton macros, such as
193 * DateIntervalInfo provides the date interval patterns.
206 * // the date interval object which the DateIntervalFormat formats on
216 * dtIntervalFmt->format(dtInterval, dateIntervalUnicodeString, pos, status);
235 * @return a date time interval formatter which the caller owns.
246 * the date interval pattern information is load from resource files.
247 * Users are encouraged to created date interval formatter this way and
248 * to use the pre-defined skeleton macros.
251 * There are pre-defined skeletons (defined in udate.h) having predefined
261 * "EEE, d MMM, yyyy - EEE, d MMM, yyyy" for year differs,
262 * "EEE, d MMM - EEE, d MMM, yyyy" for month differs,
263 * "EEE, d - EEE, d MMM, yyyy" for day differs,
267 * @return a date time interval formatter which the caller owns.
293 * @return a date time interval formatter which the caller owns.
306 * In this factory method, user provides its own date interval pattern
307 * information, instead of using those pre-defined data in resource file.
311 * There are pre-defined skeletons (defined in udate.h) having predefined
324 * field is not found ( if user not set it ), interval format fallback to
326 * If user does not provide default interval pattern, it fallback to
327 * "{date0} - {date1}"
333 * @return a date time interval formatter which the caller owns.
371 * Return true if the given Format objects are not semantically equal.
374 * @return true if the given Format objects are not semantically equal.
385 * If a the Formattable object type is not a DateInterval,
432 * Note: "fromCalendar" and "toCalendar" are not const,
433 * since calendar is not const in SimpleDateFormat::format(Calendar&),
435 * @param fromCalendar calendar set to the from date in date interval
436 * to be formatted into date interval string
437 * @param toCalendar calendar set to the to date in date interval
438 * to be formatted into date interval string
459 * Date interval parsing is not supported. Please do not use.
462 * date time interval strings into Formattable objects with
490 * Gets the date time interval patterns.
491 * @return the date time interval patterns associated with
492 * this date interval formatter.
499 * Set the date time interval patterns.
509 * Gets the date formatter. The DateIntervalFormat instance continues to own
511 * during format operations. In a multi-threaded environment, the returned
516 * @return the date formatter associated with this date interval formatter.
530 * caller no longer owns the TimeZone object and should not delete it after this call.
548 * . if (polymorphic_pointer->getDynamicClassID() ==
558 * method is to implement a simple version of RTTI, since not all C++
586 * This is for ICU internal use only. Please do not use.
588 * Interval pattern consists of 2 single date patterns and the separator.
589 * For example, interval pattern "MMM d - MMM d, yyyy" consists
590 * a single date pattern "MMM d", another single date pattern "MMM d, yyyy",
591 * and a separator "-".
593 * the first part is "MMM d - ", and the second part is "MMM d, yyyy".
594 * Also, the first date appears in an interval pattern could be
595 * the earlier date or the later date.
602 * Whether the first date in interval pattern is later date or not.
607 * For example, given 2 date, Jan 10, 2007 to Feb 10, 2007.
608 * if the fallback format is "{0} - {1}",
609 * and the pattern is "d MMM - d MMM yyyy", the interval format is
610 * "10 Jan - 10 Feb, 2007".
611 * If the pattern is "latestFirst:d MMM - d MMM yyyy",
612 * the interval format is "10 Feb - 10 Jan, 2007"
628 * full pattern, and date format symbols information.
635 * Caller should not delete them.
637 * @param locale the locale of this date interval formatter.
639 * @param skeleton the skeleton of the date formatter
652 * @param locale the locale of this date interval formatter.
656 * @return a date time interval formatter which the caller owns.
675 * @param pat0 Formatted date/time value to replace {0}
677 * @param pat1 Formatted date/time value to replace {1}
691 * Format 2 Calendars using fall-back interval pattern
693 * The full pattern used in this fall-back format is the
694 * full pattern of the date formatter.
698 * @param fromCalendar calendar set to the from date in date interval
699 * to be formatted into date interval string
700 * @param toCalendar calendar set to the to date in date interval
701 * to be formatted into date interval string
726 * patterns based on date or time only.
727 * It does not have interval patterns based on both date and time.
728 * Interval patterns on both date and time are algorithm generated.
731 * but it does not have interval patterns on skeleton "dMyhm".
733 * The rule to generate interval patterns for both date and time skeleton are
738 * "Jan 10, 2007 10:10 am - Jan 11, 2007 10:10am"
740 * 2) otherwise, present the date followed by the range expression
744 * "Jan 10, 2007 10:10 am - 11:10am"
746 * 2. even a pattern does not request a certain calendar field,
750 * includes year, month, and date when year, month, and date differs.
761 * a skeleton, and a date time pattern generator.
773 * get separated date and time skeleton from a combined skeleton.
775 * The difference between date skeleton and normalizedDateSkeleton are:
788 * @param date Output parameter for date only skeleton.
789 * @param normalizedDate Output parameter for normalized date only
797 UnicodeString& date,
805 * Generate date or time interval pattern from resource,
811 * includes "dMMMy", but not "dMMMMy".
814 * includes "hmv", but not "hmz".
821 * @param dateSkeleton normalized date skeleton
836 * It not only save the interval patterns,
847 * -1 means there are other fields difference
852 * through extending skeleton or not.
875 * 3.4 do not adjust 'd', 'h', or 'm' if h presents
876 * 3.5 do not adjust 'M' if it is numeric(?)
878 * Since date interval format is well-formed format,
879 * date and time skeletons are normalized previously,
899 * Concat a single date pattern with a time interval pattern,
902 * both time and date. Present the date followed by
904 * @param format date and time format
905 * @param datePattern date pattern
945 * @param laterDateFirst whether later date appear first in interval pattern
958 * @param laterDateFirst whether the first date in intervalPattern
959 * is earlier date or later date
971 * Note: "fromCalendar" and "toCalendar" are not const,
972 * since calendar is not const in SimpleDateFormat::format(Calendar&),
974 * @param fromCalendar calendar set to the from date in date interval
975 * to be formatted into date interval string
976 * @param toCalendar calendar set to the to date in date interval
977 * to be formatted into date interval string
1013 * The 2 calendars with the from and to date.
1014 * could re-use the calendar in fDateFormat,