Woopsi 1.3
Nintendo DS Gui Framework
libwoopsi/include/date.h
00001 #ifndef _DATE_H_
00002 #define _DATE_H_
00003 
00004 #include <nds.h>
00005 #include "woopsistring.h"
00006 
00007 namespace WoopsiUI {
00008 
00012     class Date {
00013     public:
00014 
00021         inline Date(u8 day, u8 month, u16 year) {
00022             setDate(day, month, year);
00023         };
00024 
00028         inline ~Date() { };
00029 
00034         inline const WoopsiString& getDayName() const { return _dayNames[_weekDay]; };
00035 
00040         inline const WoopsiString& getMonthName() const { return _monthNames[_month - 1]; };
00041 
00047         inline const u8 getWeekDay() const { return _weekDay; };
00048 
00053         inline const bool isLeapYear() const {
00054             return ((_year % 4 == 0) && ((_year % 100 != 0) || (_year % 400 == 0)));
00055         };
00056 
00061         inline const u16 getYearDays() {
00062             if (isLeapYear()) return 366;
00063             return 365;
00064         }
00065 
00070         const u8 getMonthDays() const;
00071 
00076         void addYears(s16 years);
00077 
00083         void addMonths(s16 months);
00084 
00089         void addDays(s16 days);
00090 
00095         inline const u8 getDay() const { return _day; };
00096 
00101         inline const u8 getMonth() const { return _month; };
00102 
00107         inline const u16 getYear() const { return _year; };
00108 
00115         void setDate(u8 day, u8 month, u16 year);
00116 
00120         bool operator==(const Date& date) const;
00121 
00125         bool operator!=(const Date& date) const;
00126 
00127     private:
00128         u8 _day;                                        
00129         u8 _month;                                      
00130         u16 _year;                                      
00131         u8 _weekDay;                                    
00132         static const WoopsiString _dayNames[7];         
00133         static const WoopsiString _monthNames[12];      
00140         const int getLeapCompensationValue() const;
00141 
00145         void calculateWeekDay();
00146 
00151         void setYear(u16 year);
00152 
00158         void setMonth(u8 month);
00164         void setDay(u8 day);
00165     };
00166 }
00167 
00168 #endif
 All Classes Functions Variables Enumerations Enumerator