godot/thirdparty/icu4c/common/unicode/dtintrv.h
2022-10-28 09:11:55 +03:00

165 lines
3.9 KiB
C++

// © 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
*/
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.0
*/
virtual UClassID getDynamicClassID(void) const override;
/**
* 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
*/
virtual bool operator==(const DateInterval& other) const;
/**
* Non-equality operator
* @return true if the two DateIntervals are not the same
* @stable ICU 4.0
*/
inline bool operator!=(const DateInterval& other) const;
/**
* 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.
*/
DateInterval() = delete;
UDate fromDate;
UDate toDate;
} ;// end class DateInterval
inline UDate
DateInterval::getFromDate() const {
return fromDate;
}
inline UDate
DateInterval::getToDate() const {
return toDate;
}
inline bool
DateInterval::operator!=(const DateInterval& other) const {
return ( !operator==(other) );
}
U_NAMESPACE_END
#endif /* U_SHOW_CPLUSPLUS_API */
#endif