KDECore
kcalendarsystemjalali.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
00023
00024 #ifndef KCALENDARSYSTEMJALALI_H
00025 #define KCALENDARSYSTEMJALALI_H
00026
00027 #include "kcalendarsystem.h"
00028
00029 class KCalendarSystemJalaliPrivate;
00033 class KDECORE_EXPORT KCalendarSystemJalali : public KCalendarSystem
00034 {
00035 public:
00036 explicit KCalendarSystemJalali( const KLocale * locale = 0 );
00037 virtual ~KCalendarSystemJalali();
00038
00039 virtual QString calendarType() const;
00040
00041 virtual QDate epoch() const;
00042 virtual QDate earliestValidDate() const;
00043 virtual QDate latestValidDate() const;
00044 virtual bool isValid( int year, int month, int day ) const;
00045 virtual bool isValid( const QDate &date ) const;
00046
00047 virtual bool setDate( QDate &date, int year, int month, int day ) const;
00049 virtual bool setYMD( QDate &date, int year, int month, int day ) const;
00050
00051 virtual int year( const QDate &date ) const;
00052 virtual int month( const QDate &date ) const;
00053 virtual int day( const QDate &date ) const;
00054
00055 virtual QDate addYears( const QDate &date, int nyears ) const;
00056 virtual QDate addMonths( const QDate &date, int nmonths ) const;
00057 virtual QDate addDays( const QDate &date, int ndays ) const;
00058
00059 virtual int monthsInYear( const QDate &date ) const;
00060 virtual int weeksInYear( const QDate &date ) const;
00061 virtual int weeksInYear( int year ) const;
00062 virtual int daysInYear( const QDate &date ) const;
00063 virtual int daysInMonth( const QDate &date ) const;
00064 virtual int daysInWeek( const QDate &date ) const;
00065
00066 virtual int dayOfYear( const QDate &date ) const;
00067 virtual int dayOfWeek( const QDate &date ) const;
00068
00069 virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
00070
00071 virtual bool isLeapYear( int year ) const;
00072 virtual bool isLeapYear( const QDate &date ) const;
00073
00074 virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
00075 virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
00076
00077 virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
00078 virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
00079
00080 virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
00081 virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
00082 virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
00083
00084 virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
00085 virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
00086 virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
00087
00088 virtual QString formatDate( const QDate &date, KLocale::DateFormat format = KLocale::LongDate ) const;
00089
00090 virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
00091 virtual QDate readDate( const QString &intstr, const QString &fmt, bool *ok = 0 ) const;
00092 virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
00093
00094 virtual int weekStartDay() const;
00095 virtual int weekDayOfPray () const;
00096
00097 virtual bool isLunar() const;
00098 virtual bool isLunisolar() const;
00099 virtual bool isSolar() const;
00100 virtual bool isProleptic() const;
00101
00102 protected:
00103 virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
00104 virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
00105
00106 private:
00107 KCalendarSystemJalaliPrivate * const d;
00108 };
00109
00110 #endif // KCALENDARSYSTEMJALALI_H