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 >
Text File  |  1989-11-10  |  2KB  |  65 lines

  1. /*
  2. **  dates.hpp -- header file for dates.cpp, a date object
  3. */
  4.  
  5. #define    MINMONTH    1        /* January */
  6. #define    MAXMONTH    12        /* December */
  7. #define    MINDAY        1
  8. #define    MAXDAY        31
  9. #define    MINWEEKDAY    0        /* Sunday */
  10. #define    MAXWEEKDAY    6        /* Saturday */
  11. #define    BADDATE        -1L
  12. #define    MINYEAR        -4700L
  13. #define    MAXYEAR        25000L
  14. #define    MINDATE        4749L        /* 1 January 4700 BC */
  15. #define    MAXDATE        10852487L    /* 31 December 25,000 */
  16. #define    MAXDATESTRLEN    256        /* max length of date format string */
  17.  
  18.  
  19. class DateObject {
  20.     long Julian;            /* julian date */
  21.     char *DateFormatPtr;        /* pointer to date format string */
  22.     unsigned char Day;        /* 1 to 31 */
  23.     unsigned char Month;        /* 1 to 12 */
  24.     int Year;            /* negative years are BC */
  25.     unsigned char DayOfWeek;    /* 0 to 6 */
  26.  
  27.     public:
  28.  
  29.     DateObject(void);
  30.     DateObject(DateObject &OtherDate);
  31.     DateObject(unsigned char InitDay, unsigned char InitMonth, int InitYear);
  32.     DateObject(unsigned char InitDay, unsigned char InitMonth, 
  33.         int InitYear, const char *FormatStr);
  34.         DateObject operator = (DateObject &d);
  35.         DateObject operator - (long x);
  36.         DateObject operator ++ (void);
  37.         DateObject operator -- (void);
  38.         DateObject operator += (long x);
  39.         DateObject operator -= (long x);
  40.         int operator == (DateObject &d) { return (Julian == d.Julian); }
  41.         int operator != (DateObject &d) { return (Julian != d.Julian); }
  42.         int operator > (DateObject &d) { return (Julian > d.Julian); }
  43.         int operator < (DateObject &d) { return (Julian < d.Julian); }
  44.         int operator >= (DateObject &d) { return (Julian >= d.Julian); }
  45.         int operator <= (DateObject &d) { return (Julian <= d.Julian); }
  46.     int ValidDate(void) { return (Julian != BADDATE); }
  47.     unsigned char GetDay(void) { return (Day); }
  48.     unsigned char GetMonth(void) { return (Month); }
  49.     int GetYear(void) { return (Year); }
  50.     unsigned char GetDayOfWeek(void) { return (DayOfWeek); }
  51.     long GetJulian(void) { return (Julian); }
  52.     const char *GetFormat(void);
  53.     int ChangeDate(unsigned char NDay, unsigned char NMonth, int NYear);
  54.     void ChangeFormat(const char *s);
  55.     ~DateObject(void);
  56.     friend DateObject operator + (DateObject &d, long x);
  57.     friend DateObject operator + (long x, DateObject &d);
  58.     friend long operator - (DateObject &d1, DateObject &d2) 
  59.         { return (d1.Julian - d2.Julian); };
  60.     char *DateToString(void);
  61. };
  62.  
  63. int ChangeDefaultDateFormat(const char *);
  64.  
  65.