75 friend class QCalendar;
76 friend class QtPrivate::QCalendarRegistry;
77 Q_DISABLE_COPY_MOVE(QCalendarBackend)
80 QCalendarBackend() =
default;
81 virtual ~QCalendarBackend();
82 virtual QString name()
const = 0;
84 QStringList names()
const;
86 QCalendar::System calendarSystem()
const;
87 QCalendar::SystemId calendarId()
const {
return m_id; }
89 virtual int daysInMonth(
int month,
int year = QCalendar::Unspecified)
const = 0;
90 virtual int daysInYear(
int year)
const;
91 virtual int monthsInYear(
int year)
const;
92 virtual bool isDateValid(
int year,
int month,
int day)
const;
94 virtual bool isLeapYear(
int year)
const = 0;
95 virtual bool isLunar()
const = 0;
96 virtual bool isLuniSolar()
const = 0;
97 virtual bool isSolar()
const = 0;
98 virtual bool isProleptic()
const;
99 virtual bool hasYearZero()
const;
100 virtual int maximumDaysInMonth()
const;
101 virtual int minimumDaysInMonth()
const;
102 virtual int maximumMonthsInYear()
const;
104 virtual bool dateToJulianDay(
int year,
int month,
int day, qint64 *jd)
const = 0;
105 virtual QCalendar::YearMonthDay julianDayToDate(qint64 jd)
const = 0;
107 virtual int dayOfWeek(qint64 jd)
const;
108 virtual qint64 matchCenturyToWeekday(
const QCalendar::YearMonthDay &parts,
int dow)
const;
111 virtual QString monthName(
const QLocale &locale,
int month,
int year,
112 QLocale::FormatType format)
const;
113 virtual QString standaloneMonthName(
const QLocale &locale,
int month,
int year,
114 QLocale::FormatType format)
const;
115 virtual QString weekDayName(
const QLocale &locale,
int day,
116 QLocale::FormatType format)
const;
117 virtual QString standaloneWeekDayName(
const QLocale &locale,
int day,
118 QLocale::FormatType format)
const;
121 virtual QString dateTimeToString(QStringView format,
const QDateTime &datetime,
122 QDate dateOnly, QTime timeOnly,
123 const QLocale &locale)
const;
125 bool isGregorian()
const;
127 QCalendar::SystemId registerCustomBackend(
const QStringList &names);
130 static QStringList availableCalendars();
134 virtual const QCalendarLocale *localeMonthIndexData()
const = 0;
135 virtual const char16_t *localeMonthData()
const = 0;
138 QCalendar::SystemId m_id;
140 void setIndex(size_t index);
143 static const QCalendarBackend *fromName(QAnyStringView name);
144 static const QCalendarBackend *fromId(QCalendar::SystemId id);
146 static const QCalendarBackend *fromEnum(QCalendar::System system);
147 static const QCalendarBackend *gregorian();