00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_TIME_CALENDARJULIAN_
00020 #define _SWORD_TIME_CALENDARJULIAN_
00021
00022 #include "sword/time.CalendarWestern.h"
00023 #include "sword.private/time.CalendarWesternImpl.h"
00024 #include "sword.private/time.CalendarJulianImpl.inl"
00025
00026 namespace sword {
00027
00029
00046 class SWORDDECL CalendarJulian : public CalendarWestern {
00047 public:
00048
00049 virtual bool isValid(word day, word month, word year, word hour, word minute, word second, word millisecond) const;
00050
00051
00052 virtual bool isLeapYear(word year) const;
00053 virtual int64 daysInMonth(word month, word year) const;
00054 virtual int64 daysInYear(word year) const;
00055 virtual int64 daysWithinYear(word day, word month, word year) const;
00056 virtual int64 daysBeforeYear(word year) const;
00057 virtual word weekDay(Time time) const;
00058 virtual Time easter(word year) const;
00059 virtual int64 dmy2days_(word day, word month, word year) const;
00060 virtual void days2dmy_(int64 days, word &day, word &month, word &year) const;
00061 private:
00062
00063
00064
00065 typedef CalendarWesternImpl<CalendarJulianImpl> IMPL;
00066 };
00067
00068
00069 extern SWORDDECL CalendarJulian TheCalendarJulian;
00070
00071 }
00072
00073 #include "sword.private/time.CalendarJulian.inl"
00074
00075 #endif // _SWORD_TIME_CALENDARJULIAN_