KDECore
kcalendarsystemhijri.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KCALENDARSYSTEMHIJRI_H
00023 #define KCALENDARSYSTEMHIJRI_H
00024
00025 #include "kcalendarsystem.h"
00026
00027 class KCalendarSystemHijriPrivate;
00028
00042 class KDECORE_EXPORT KCalendarSystemHijri : public KCalendarSystem
00043 {
00044 public:
00045 explicit KCalendarSystemHijri( const KLocale *locale = 0 );
00046 virtual ~KCalendarSystemHijri();
00047
00048 virtual QString calendarType() const;
00049
00050 virtual QDate epoch() const;
00051 virtual QDate earliestValidDate() const;
00052 virtual QDate latestValidDate() const;
00053 virtual bool isValid( int year, int month, int day ) const;
00054 virtual bool isValid( const QDate &date ) const;
00055
00056 virtual bool setDate( QDate &date, int year, int month, int day ) const;
00058 virtual bool setYMD( QDate &date, int year, int month, int day ) const;
00059
00060 virtual int year( const QDate &date ) const;
00061 virtual int month( const QDate &date ) const;
00062 virtual int day( const QDate &date ) const;
00063
00064 virtual QDate addYears( const QDate &date, int nyears ) const;
00065 virtual QDate addMonths( const QDate &date, int nmonths ) const;
00066 virtual QDate addDays( const QDate &date, int ndays ) const;
00067
00068 virtual int monthsInYear( const QDate &date ) const;
00069 virtual int weeksInYear( const QDate &date ) const;
00070 virtual int weeksInYear( int year ) const;
00071 virtual int daysInYear( const QDate &date ) const;
00072 virtual int daysInMonth( const QDate &date ) const;
00073 virtual int daysInWeek( const QDate &date ) const;
00074
00075 virtual int dayOfYear( const QDate &date ) const;
00076 virtual int dayOfWeek( const QDate &date ) const;
00077
00078 virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
00079
00080 virtual bool isLeapYear( int year ) const;
00081 virtual bool isLeapYear( const QDate &date ) const;
00082
00083 virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
00084 virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
00085
00086 virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
00087 virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
00088
00089 virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
00090 virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
00091 virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
00092
00093 virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
00094 virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
00095 virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
00096
00097 virtual QString formatDate( const QDate &date, KLocale::DateFormat format = KLocale::LongDate ) const;
00098
00099 virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
00100 virtual QDate readDate( const QString &intstr, const QString &fmt, bool *ok = 0 ) const;
00101 virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
00102
00103 virtual int weekStartDay() const;
00104 virtual int weekDayOfPray () const;
00105
00106 virtual bool isLunar() const;
00107 virtual bool isLunisolar() const;
00108 virtual bool isSolar() const;
00109 virtual bool isProleptic() const;
00110
00111 protected:
00112 virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
00113 virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
00114
00115 private:
00116 KCalendarSystemHijriPrivate * const d;
00117 };
00118
00119 #endif // KCALENDARSYSTEMHIJRI_H