00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef RcppDate_h
00024 #define RcppDate_h
00025
00026 #include <RcppCommon.h>
00027
00028 class RcppDate {
00029 private:
00030 void mdy2jdn();
00031 void jdn2mdy();
00032 int month, day, year;
00033 int jdn;
00034
00035 public:
00036 static const int Jan1970Offset;
00037 static const int QLtoJan1970Offset;
00038 RcppDate();
00039 RcppDate(int Rjdn);
00040 RcppDate(int month_, int day_, int year_);
00041 int getMonth() const { return month; }
00042 int getDay() const { return day; }
00043 int getYear() const { return year; }
00044 int getJDN() const { return jdn; }
00045
00046
00047 friend RcppDate operator+(const RcppDate &date, int offset);
00048 friend int operator-(const RcppDate& date1, const RcppDate& date2);
00049 friend bool operator<(const RcppDate &date1, const RcppDate& date2);
00050 friend bool operator>(const RcppDate &date1, const RcppDate& date2);
00051 friend bool operator==(const RcppDate &date1, const RcppDate& date2);
00052 friend bool operator>=(const RcppDate &date1, const RcppDate& date2);
00053 friend bool operator<=(const RcppDate &date1, const RcppDate& date2);
00054
00055 friend std::ostream& operator<<(std::ostream& os, const RcppDate& date);
00056 };
00057
00058 #endif