ÿØÿà JFIF ÿþ ÿÛ C ÿÛ C ÿÀ ÿÄ ÿÄ " #QrÿÄ ÿÄ & 1! A"2qQaáÿÚ ? Øy,æ/3JæÝ¹Èß²Ø5êXw²±ÉyR¾I0ó2PI¾IÌÚiMö¯þrìN&"KgX:íµnTJnLK @!-ýùúmë;ºgµ&ó±hw¯Õ@Ü9ñ-ë.²1<yà¹ïQÐUÛ?.¦èûbß±©Ö«Âw*V) `$bØÔëXÖ-ËTÜíGÚ3ð«g §¯JxU/ÂÅv_s(Hÿ @TñJÑãõçn!ÈgfbÓc:él[ðQe9ÀPLbÃãCµm[5¿ç'ªjglåÛí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢S x?"¸¦ùYé¨ÒOÈ q`~~ÚtËU¹CÚêV I1Áß_ÿÙ// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2009-2010, Google, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ #ifndef __TMUTAMT_H__ #define __TMUTAMT_H__ /** * \file * \brief C++ API: time unit amount object. */ #include "unicode/measure.h" #include "unicode/tmunit.h" #if !UCONFIG_NO_FORMATTING U_NAMESPACE_BEGIN /** * Express a duration as a time unit and number. Patterned after Currency. * @see TimeUnitAmount * @see TimeUnitFormat * @stable ICU 4.2 */ class U_I18N_API TimeUnitAmount: public Measure { public: /** * Construct TimeUnitAmount object with the given number and the * given time unit. * @param number a numeric object; number.isNumeric() must be TRUE * @param timeUnitField the time unit field of a time unit * @param status the input-output error code. * If the number is not numeric or the timeUnitField * is not valid, * then this will be set to a failing value: * U_ILLEGAL_ARGUMENT_ERROR. * @stable ICU 4.2 */ TimeUnitAmount(const Formattable& number, TimeUnit::UTimeUnitFields timeUnitField, UErrorCode& status); /** * Construct TimeUnitAmount object with the given numeric amount and the * given time unit. * @param amount a numeric amount. * @param timeUnitField the time unit field on which a time unit amount * object will be created. * @param status the input-output error code. * If the timeUnitField is not valid, * then this will be set to a failing value: * U_ILLEGAL_ARGUMENT_ERROR. * @stable ICU 4.2 */ TimeUnitAmount(double amount, TimeUnit::UTimeUnitFields timeUnitField, UErrorCode& status); /** * Copy constructor * @stable ICU 4.2 */ TimeUnitAmount(const TimeUnitAmount& other); /** * Assignment operator * @stable ICU 4.2 */ TimeUnitAmount& operator=(const TimeUnitAmount& other); /** * Clone. * @return a polymorphic clone of this object. The result will have the same class as returned by getDynamicClassID(). * @stable ICU 4.2 */ virtual UObject* clone() const; /** * Destructor * @stable ICU 4.2 */ virtual ~TimeUnitAmount(); /** * Equality operator. * @param other the object to compare to. * @return true if this object is equal to the given object. * @stable ICU 4.2 */ virtual UBool operator==(const UObject& other) const; /** * Not-equality operator. * @param other the object to compare to. * @return true if this object is not equal to the given object. * @stable ICU 4.2 */ UBool operator!=(const UObject& other) const; /** * Return the class ID for this class. This is useful only for comparing to * a return value from getDynamicClassID(). For example: *
* . Base* polymorphic_pointer = createPolymorphicObject();
* . if (polymorphic_pointer->getDynamicClassID() ==
* . erived::getStaticClassID()) ...
*
* @return The class ID for all objects of this class.
* @stable ICU 4.2
*/
static UClassID U_EXPORT2 getStaticClassID(void);
/**
* Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
* method is to implement a simple version of RTTI, since not all C++
* compilers support genuine RTTI. Polymorphic operator==() and clone()
* methods call this method.
*
* @return The class ID for this object. All objects of a
* given class have the same class ID. Objects of
* other classes have different class IDs.
* @stable ICU 4.2
*/
virtual UClassID getDynamicClassID(void) const;
/**
* Get the time unit.
* @return time unit object.
* @stable ICU 4.2
*/
const TimeUnit& getTimeUnit() const;
/**
* Get the time unit field value.
* @return time unit field value.
* @stable ICU 4.2
*/
TimeUnit::UTimeUnitFields getTimeUnitField() const;
};
inline UBool
TimeUnitAmount::operator!=(const UObject& other) const {
return !operator==(other);
}
U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_FORMATTING */
#endif // __TMUTAMT_H__
//eof
//