00001 #ifndef _WINC_DATE
00002 #define _WINC_DATE
00003
00004 #include <WXP/DateVal.h>
00005 #include <WXP/String.h>
00006
00007 namespace WXP {
00008 class Date : private DateVal {
00009 int wday;
00010 int jday;
00011 long secs;
00012 int off;
00013 char zone[5];
00015 int computeSecs();
00016
00017 public:
00018 Date();
00019 Date( int ryear, int rmonth, int rday, int rhour, int rmin, float rsec );
00020 Date( DateVal &date );
00021 Date( long secs );
00022 Date( char *str );
00023 int init();
00024 bool isSet();
00025 int set( const char *str );
00026 int set( int ryear, int rmonth, int rday, int rhour, int rmin, float rsec );
00028 inline int set( Date &rdate ){ *this = rdate; return 1; };
00029 int set( DateVal &date );
00030 int set( DateVal &date, int roff, const char *tz );
00031 int set( long secs );
00032 int set();
00033 int getVals( DateVal &date );
00034 DateVal get();
00035 int setYear( int val );
00037 inline int getYear(){ return year; };
00038 int getYear00();
00039 int setMonth( int val );
00041 inline int getMonth(){ return month; };
00042 int setDay( int val );
00044 inline int getDay(){ return day; };
00045 int setHour( int val );
00047 inline int getHour(){ return hour; };
00048 int setMinute( int val );
00050 inline int getMinute(){ return min; };
00051 int setSecond( float val );
00052 int setFractionalSecond( float val );
00054 inline float getSecond(){ return sec; };
00055 int getSeconds();
00056 bool isLeap();
00057 int setDays( int days );
00058 int setTime( int rhour, int rmin, float rsec );
00059 int setTime( float rsecs );
00060 int getDays();
00061 int addYears( int years );
00062 int addMonths( int months );
00063 int addDays( int days );
00064 int addHours( int hours );
00065 int addMinutes( int mins );
00066 int addSeconds( float secs );
00067 int getDayOfWeek();
00068 int getJulian();
00069 int setJulian( int val );
00070 int toString( String &str );
00071 int toText( String &str );
00072 int toText( const char *form, String &str );
00073 int changeTimezone( int roff, const char *tz );
00074 int adjustMinute( int rmonth, int rday, int rhour, int rmin );
00075 int adjustMinute( int rday, int rhour, int rmin );
00076 int adjustMinute( int rhour, int rmin );
00077 int adjustSecond( int rhour, int rmin, int rsec );
00078 int adjustHour( int rmonth, int rday, int rhour );
00079 int adjustHour( int rday, int rhour );
00080 int adjustHour( int rhour );
00081 int fix();
00082 int print();
00083 int printSeconds();
00084
00085 static long getCurrentSeconds();
00086 static bool isYearLeap( int year );
00087 static int setJulian( int year, int jday, int &month, int &day );
00088 static int getJulian( int year, int month, int day );
00089 };
00090 }
00091
00092 #endif