2020-08-11 09:10:23 +00:00
|
|
|
// © 2016 and later: Unicode, Inc. and others.
|
|
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
|
|
/*
|
|
|
|
*******************************************************************************
|
|
|
|
* Copyright (C) 2008-2009, International Business Machines Corporation and
|
|
|
|
* others. All Rights Reserved.
|
|
|
|
*******************************************************************************
|
|
|
|
*
|
|
|
|
* File DTINTRV.H
|
|
|
|
*
|
|
|
|
*******************************************************************************
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __DTINTRV_H__
|
|
|
|
#define __DTINTRV_H__
|
|
|
|
|
|
|
|
#include "unicode/utypes.h"
|
|
|
|
|
|
|
|
#if U_SHOW_CPLUSPLUS_API
|
|
|
|
|
|
|
|
#include "unicode/uobject.h"
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \file
|
|
|
|
* \brief C++ API: Date Interval data type
|
|
|
|
*/
|
|
|
|
|
|
|
|
U_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This class represents a date interval.
|
|
|
|
* It is a pair of UDate representing from UDate 1 to UDate 2.
|
|
|
|
* @stable ICU 4.0
|
|
|
|
**/
|
|
|
|
class U_COMMON_API DateInterval : public UObject {
|
|
|
|
public:
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Construct a DateInterval given a from date and a to date.
|
|
|
|
* @param fromDate The from date in date interval.
|
|
|
|
* @param toDate The to date in date interval.
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
DateInterval(UDate fromDate, UDate toDate);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* destructor
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
virtual ~DateInterval();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the from date.
|
|
|
|
* @return the from date in dateInterval.
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
inline UDate getFromDate() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the to date.
|
|
|
|
* @return the to date in dateInterval.
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
inline UDate getToDate() const;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the class ID for this class. This is useful only for comparing to
|
|
|
|
* a return value from getDynamicClassID(). For example:
|
|
|
|
* <pre>
|
|
|
|
* . Base* polymorphic_pointer = createPolymorphicObject();
|
|
|
|
* . if (polymorphic_pointer->getDynamicClassID() ==
|
|
|
|
* . derived::getStaticClassID()) ...
|
|
|
|
* </pre>
|
|
|
|
* @return The class ID for all objects of this class.
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
2024-05-14 08:41:19 +00:00
|
|
|
static UClassID U_EXPORT2 getStaticClassID();
|
2020-08-11 09:10:23 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.0
|
|
|
|
*/
|
2024-05-14 08:41:19 +00:00
|
|
|
virtual UClassID getDynamicClassID() const override;
|
2020-08-11 09:10:23 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Copy constructor.
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
DateInterval(const DateInterval& other);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Default assignment operator
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
DateInterval& operator=(const DateInterval&);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Equality operator.
|
|
|
|
* @return true if the two DateIntervals are the same
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
2021-10-28 06:15:28 +00:00
|
|
|
virtual bool operator==(const DateInterval& other) const;
|
2020-08-11 09:10:23 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Non-equality operator
|
|
|
|
* @return true if the two DateIntervals are not the same
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
2021-10-28 06:15:28 +00:00
|
|
|
inline bool operator!=(const DateInterval& other) const;
|
2020-08-11 09:10:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* clone this object.
|
|
|
|
* The caller owns the result and should delete it when done.
|
|
|
|
* @return a cloned DateInterval
|
|
|
|
* @stable ICU 4.0
|
|
|
|
*/
|
|
|
|
virtual DateInterval* clone() const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
/**
|
|
|
|
* Default constructor, not implemented.
|
|
|
|
*/
|
2022-10-28 06:11:55 +00:00
|
|
|
DateInterval() = delete;
|
2020-08-11 09:10:23 +00:00
|
|
|
|
|
|
|
UDate fromDate;
|
|
|
|
UDate toDate;
|
|
|
|
|
|
|
|
} ;// end class DateInterval
|
|
|
|
|
|
|
|
|
|
|
|
inline UDate
|
|
|
|
DateInterval::getFromDate() const {
|
|
|
|
return fromDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline UDate
|
|
|
|
DateInterval::getToDate() const {
|
|
|
|
return toDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2021-10-28 06:15:28 +00:00
|
|
|
inline bool
|
2020-08-11 09:10:23 +00:00
|
|
|
DateInterval::operator!=(const DateInterval& other) const {
|
|
|
|
return ( !operator==(other) );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
U_NAMESPACE_END
|
|
|
|
|
|
|
|
#endif /* U_SHOW_CPLUSPLUS_API */
|
|
|
|
|
|
|
|
#endif
|