/* * NOTES: * * REVISIONS: * pcy30Mar95: Initial revision * pav11Jul95: Merged in Windows 16 bit needs * djs12Sep95: Port to Unix * ntf03Jan96: Added operator<< functionality so that datetime.cxx would compile * ajr14Feb96: SINIX merge */ #ifndef _DATETIME_H #define _DATETIME_H #include "apc.h" #include "_defs.h" _CLASSDEF(DateTimeObj) _CLASSDEF(DateObj) _CLASSDEF(TimeObj) _CLASSDEF(WeekObj) #ifdef APCDEBUG class ostream; #endif #include "err.h" #include "apcobj.h" #if (C_OS & C_UNIX) #if (!(C_OS & C_SINIX)) #include #endif #endif #if (C_OS & C_WIN311) class TimeObj : public Obj { private: INT theHours; INT theMinutes; INT theSeconds; protected: #ifdef APCDEBUG virtual ostream& printMeOut(ostream& os); #endif public: #ifdef APCDEBUG friend ostream& operator<< (ostream& os, TimeObj &); #endif TimeObj(); TimeObj(PCHAR); TimeObj(INT aHours, INT aMinutes, INT aSeconds); virtual INT GetHour() const; virtual INT GetMinutes() const; virtual INT GetSeconds() const; VOID SetHour(INT hour); VOID SetMinutes(INT minutes); VOID SetSeconds(INT seconds); INT Equal(PTimeObj atime); virtual INT operator < (const RTimeObj cmp) const; }; class WeekObj : public Obj { private: INT theWeekDay; public: WeekObj(); WeekObj(PCHAR); WeekObj(INT Day); INT GetWeekDay(); }; class DateObj : public Obj { private: INT theMonth; INT theDay; INT theYear; protected: #ifdef APCDEBUG virtual ostream& printMeOut(ostream& os); #endif public: #ifdef APCDEBUG friend ostream& operator<< (ostream& os, DateObj &); #endif DateObj(); DateObj(INT aMonth,INT aDay,INT aYear); virtual INT GetMonth() const; virtual INT GetDay() const; virtual INT GetYear() const; virtual INT GetDaysInMonth() const; virtual INT GetDaysInMonth (const INT, const INT aYear = 1) const; virtual INT operator == (const RDateObj cmp) const; virtual INT operator < (const RDateObj cmp) const; virtual LONG operator - (const RDateObj cmp) const; VOID SetMonth(INT month); VOID SetDay(INT day); VOID SetYear(INT year); }; // The constructor takes the following arguements. // Month - 1-12 // Day - 1-31 , Depending upon the month. // Year -- YY , Example 92 // Hour -- HH , Military time. ( 24 Hour Clock) // Minutes -- MM ,0-59 // Seconds -- SS, 0-59 class DateTimeObj : public Obj { private: PDateObj theDate; PTimeObj theTime; protected: #ifdef APCDEBUG virtual ostream& printMeOut(ostream& os); #endif public: #ifdef APCDEBUG friend ostream& operator<< (ostream& os, DateTimeObj &); #endif DateTimeObj(); DateTimeObj(INT aMonth,INT aDay, INT aYear,INT anHour, INT aMinutes, INT aSeconds); DateTimeObj (const RDateTimeObj aDate); virtual ~DateTimeObj(); PDateObj GetDate() const; PTimeObj GetTime() const; virtual INT operator < (const RDateTimeObj cmp) const; virtual LONG GetMilliseconds(); virtual LONG GetSeconds(); }; #else class TimeObj : public Obj { private: ULONG theHours; ULONG theMinutes; ULONG theSeconds; protected: #ifdef APCDEBUG virtual ostream& printMeOut(ostream& os); #endif public: #ifdef APCDEBUG friend ostream& operator<< (ostream& os, TimeObj &); #endif TimeObj(); TimeObj(PCHAR); TimeObj(ULONG aHours, ULONG aMinutes, ULONG aSeconds); virtual ULONG GetHour() const; virtual ULONG GetMinutes() const; virtual ULONG GetSeconds() const; VOID SetHour(ULONG hour); VOID SetMinutes(ULONG minutes); VOID SetSeconds(ULONG seconds); INT Equal(PTimeObj atime); virtual INT operator < (RTimeObj cmp) const; }; class WeekObj : public Obj { private: ULONG theWeekDay; public: WeekObj(); WeekObj(PCHAR); WeekObj(ULONG Day); ULONG GetWeekDay(); }; class DateObj : public Obj { private: ULONG theMonth; ULONG theDay; ULONG theYear; protected: #ifdef APCDEBUG virtual ostream& printMeOut(ostream& os); #endif public: #ifdef APCDEBUG friend ostream& operator<< (ostream& os, DateObj &); #endif DateObj(); DateObj(ULONG aMonth,ULONG aDay,ULONG aYear); virtual ULONG GetMonth() const; virtual ULONG GetDay() const; virtual ULONG GetYear() const; virtual ULONG GetDaysInMonth() const; virtual ULONG GetDaysInMonth (const ULONG, const ULONG aYear = 1) const; virtual INT operator == (RDateObj cmp) const; virtual INT operator < (RDateObj cmp) const; virtual LONG operator - (RDateObj cmp) const; VOID SetMonth(ULONG month); VOID SetDay(ULONG day); VOID SetYear(ULONG year); }; // The constructor takes the following arguements. // Month - 1-12 // Day - 1-31 , Depending upon the month. // Year -- YY , Example 92 // Hour -- HH , Military time. ( 24 Hour Clock) // Minutes -- MM ,0-59 // Seconds -- SS, 0-59 class DateTimeObj : public Obj { private: PDateObj theDate; PTimeObj theTime; protected: #ifdef APCDEBUG virtual ostream& printMeOut(ostream& os); #endif public: #ifdef APCDEBUG friend ostream& operator<< (ostream& os, DateTimeObj &); #endif DateTimeObj(); DateTimeObj(ULONG aMonth,ULONG aDay,ULONG aYear,ULONG anHour,ULONG aMinutes, ULONG aSeconds); DateTimeObj (RDateTimeObj aDate); virtual ~DateTimeObj(); PDateObj GetDate() const; PTimeObj GetTime() const; virtual INT operator < (RDateTimeObj cmp) const; virtual LONG GetMilliseconds(); virtual LONG GetSeconds(); }; #endif #endif