/* "CodeWorker": a scripting language for parsing and generating text. Copyright (C) 1996-1997, 1999-2002 Cédric Lemaire This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA To contact the author: codeworker@free.fr */ #ifndef _UtlDate_h_ #define _UtlDate_h_ #include namespace CodeWorker { class UtlInternalDate; class UtlDate { private: UtlInternalDate* _pInternalDate; public: UtlDate(); UtlDate(const UtlDate& date); UtlDate(double dWINGZDate); UtlDate(int iWinfrontDate); UtlDate(int iDay, int iMonth, int iYear, int iHour = 0, int iMin = 0, int iSec = 0, int iMillis = 0); UtlDate(int iFrequency, char cUnit); ~UtlDate(); bool isNull() const; void nullify(); bool isInfinite() const; void infinity(); UtlDate* copyInstance() const; UtlDate& operator =(const UtlDate& date); bool operator <(const UtlDate& date) const; bool operator <=(const UtlDate& date) const; bool operator ==(const UtlDate& date) const; bool operator !=(const UtlDate& date) const; bool operator >=(const UtlDate& date) const; bool operator >(const UtlDate& date) const; double operator -(const UtlDate& date) const; void today(); bool isAFixedDate() const; bool isAVariableDate() const; int getFrequency(); char getUnit(); const std::string& getComment() const; void setComment(const std::string& sComment); int getDay() const; const char* getWeekDay() const; int getWeekDayOrder() const; int getMonth() const; int getYear() const; void setDay(int iDay); void setMonth(int iMonth); void setYear(int iYear); void addDay(int iDay); void addMonth(int iMonth); void addYear(int iYear); int getHour() const; int getMin() const; int getSec() const; int getMillis() const; bool isLastDayOfMonth() const; void setLastDayOfMonth(); void ignoreHours(); void setTime(int iHour, int iMin, int iSec, int iMillis = 0); int compareTime(const UtlDate& date) const; void setHour(int iHour); void setMin(int iMin); void setSec(int iSec); void setMillis(int iMillis); void addHour(int iHour); void addMin(int iMin); void addSec(int iSec); void addMillis(int iMillis); void addDateFromFormat(const std::string& sFormat, const std::string& sDate); std::string getString() const; std::string getMCLDate() const; std::string getFormattedDate(const std::string& sFormat) const; static UtlDate getDateFromFormat(const std::string& sDate, const std::string& sFormat); int getDayWINGZDate() const; double getWINGZDate() const; void setWINGZDate(double dWINGZDate); private: static int getInteger(const std::string& sValue, int iNbMaxOfDigits, std::string::size_type& iCursor); static double getDouble(const std::string& sValue, int iNbMaxOfDigits, std::string::size_type& iCursor); }; } #endif