272 lines
5.4 KiB
C
272 lines
5.4 KiB
C
|
/*
|
||
|
* 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 <iostream.h>
|
||
|
#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
|