home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_08_06
/
8n06058a
< prev
next >
Wrap
Text File
|
1989-11-10
|
2KB
|
65 lines
/*
** dates.hpp -- header file for dates.cpp, a date object
*/
#define MINMONTH 1 /* January */
#define MAXMONTH 12 /* December */
#define MINDAY 1
#define MAXDAY 31
#define MINWEEKDAY 0 /* Sunday */
#define MAXWEEKDAY 6 /* Saturday */
#define BADDATE -1L
#define MINYEAR -4700L
#define MAXYEAR 25000L
#define MINDATE 4749L /* 1 January 4700 BC */
#define MAXDATE 10852487L /* 31 December 25,000 */
#define MAXDATESTRLEN 256 /* max length of date format string */
class DateObject {
long Julian; /* julian date */
char *DateFormatPtr; /* pointer to date format string */
unsigned char Day; /* 1 to 31 */
unsigned char Month; /* 1 to 12 */
int Year; /* negative years are BC */
unsigned char DayOfWeek; /* 0 to 6 */
public:
DateObject(void);
DateObject(DateObject &OtherDate);
DateObject(unsigned char InitDay, unsigned char InitMonth, int InitYear);
DateObject(unsigned char InitDay, unsigned char InitMonth,
int InitYear, const char *FormatStr);
DateObject operator = (DateObject &d);
DateObject operator - (long x);
DateObject operator ++ (void);
DateObject operator -- (void);
DateObject operator += (long x);
DateObject operator -= (long x);
int operator == (DateObject &d) { return (Julian == d.Julian); }
int operator != (DateObject &d) { return (Julian != d.Julian); }
int operator > (DateObject &d) { return (Julian > d.Julian); }
int operator < (DateObject &d) { return (Julian < d.Julian); }
int operator >= (DateObject &d) { return (Julian >= d.Julian); }
int operator <= (DateObject &d) { return (Julian <= d.Julian); }
int ValidDate(void) { return (Julian != BADDATE); }
unsigned char GetDay(void) { return (Day); }
unsigned char GetMonth(void) { return (Month); }
int GetYear(void) { return (Year); }
unsigned char GetDayOfWeek(void) { return (DayOfWeek); }
long GetJulian(void) { return (Julian); }
const char *GetFormat(void);
int ChangeDate(unsigned char NDay, unsigned char NMonth, int NYear);
void ChangeFormat(const char *s);
~DateObject(void);
friend DateObject operator + (DateObject &d, long x);
friend DateObject operator + (long x, DateObject &d);
friend long operator - (DateObject &d1, DateObject &d2)
{ return (d1.Julian - d2.Julian); };
char *DateToString(void);
};
int ChangeDefaultDateFormat(const char *);