windows-nt/Source/XPSP1/NT/ds/netapi/svcdlls/upssvc/apcsmart/datetime.h
2020-09-26 16:20:57 +08:00

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