Name Description Size Coverage
qcalendar.cpp \internal Handles calendar backend registration. 56834 -
qcalendar.h Suggested enum names for other calendars known to CLDR (v33.1) Not yet implemented - see QCalendar::System - contributions welcome: Buddhist -- Thai Buddhist, to be specific Chinese Coptic Dangi -- Korean Ethiopic (Amete Mihret - epoch approx. 8 C.E.) EthiopicAmeteAlem (Amete Alem - epoch approx. 5493 B.C.E; data from type="ethiopic-amete-alem", an alias for type="ethioaa") Hebrew Indian -- National Islamic -- Based on astronomical observations, not predictions, so hard to implement. CLDR's data for type="islamic" apply, unless overridden, to the other Islamic calendar variants, i.e. IslamicCivil, above, and the three following. See QHijriCalendar, a common base to provide that data. IslamicTabular -- tabular, astronomical epoch (same as IslamicCivil, except for epoch), CLDR type="islamic-tbla" Saudi -- Saudi Arabia, sighting; CLDR type="islamic-rgsa" UmmAlQura -- Umm al-Qura, Saudi Arabia, calculated; CLDR type="islamic-umalqura" Iso8601 -- as Gregorian, but treating ISO 8601 weeks as "months" Japanese -- Imperial calendar Minguo -- Republic of China, Taiwan; CLDR type="roc" See: http://www.unicode.org/repos/cldr/tags/latest/common/bcp47/calendar.xml These can potentially be supported, as features, using CLDR's data; any others shall need hand-crafted localization data; it would probably be best to do that by contributing data for them to CLDR. 6672 -
qcalendarbackend_p.h 5410 -
qcalendarmath_p.h Division, rounding down (rather than towards zero). From C++11 onwards, integer division is defined to round towards zero, so we can rely on that when implementing this. This is only used with denominator b > 0, so we only have to treat negative numerator, a, specially. If a is a multiple of b, adding 1 before and subtracting it after dividing by b gets us to where we should be (albeit by an eccentric path), since the adding caused rounding up, undone by the subtracting. Otherwise, adding 1 doesn't change the result of dividing by b; and we want one less than that result. This is equivalent to subtracting b - 1 and simply dividing, except when that subtraction would underflow. For the remainder, with negative a, aside from having to add one and subtract it later to deal with the exact multiples, we can simply use the truncating remainder and then add b. When b is a power of two we can, of course, get the remainder correctly by the same masking that works for positive a. 5754 -
qdatetime.cpp Date/Time Constants *************************************************************************** 222283 -
qdatetime.h 27790 -
qdatetime_p.h 4847 -
qdatetimeparser.cpp ! \internal Gets the digit from a datetime. E.g. QDateTime var(QDate(2004, 02, 02)); int digit = getDigit(var, Year); // digit = 2004 90228 -
qdatetimeparser_p.h 9545 -
qgregoriancalendar.cpp ! \since 5.14 \internal \class QGregorianCalendar \inmodule QtCore \brief The QGregorianCalendar class implements the Gregorian calendar. \section1 The Gregorian Calendar The Gregorian calendar is a refinement of the earlier Julian calendar, itself a late form of the Roman calendar. It is widely used. \sa QRomanCalendar, QJulianCalendar, QCalendar 10560 -
qgregoriancalendar_p.h 1799 -
qhijricalendar.cpp ! \since 5.14 \internal \class QHijriCalendar \inmodule QtCore \brief The QHijriCalendar class supports Islamic (Hijri) calendar implementations. \section1 Islamic Calendar System The Islamic, Muslim, or Hijri calendar is a lunar calendar consisting of 12 months in a year of 354 or 355 days. It is used (often alongside the Gregorian calendar) to date events in many Muslim countries. It is also used by Muslims to determine the proper days of Islamic holidays and rituals, such as the annual period of fasting and the proper time for the pilgrimage to Mecca. Source: \l {https://en.wikipedia.org/wiki/Islamic_calendar}{Wikipedia page on Hijri Calendar} \section1 Support for variants This base class provides the common details shared by all variants on the Islamic calendar. Each year comprises 12 months of 29 or 30 days each; most years have as many of 29 as of 30, but leap years extend one 29-day month to 30 days. In tabular versions of the calendar (where mathematical rules are used to determine the details), odd-numbered months have 30 days, as does the last (twelfth) month of a leap year; all other months have 29 days. Other versions are based on actual astronomical observations of the moon's phase at sunset, which vary from place to place. \sa QIslamicCivilCalendar, QCalendar 2570 -
qhijricalendar_data_p.h This part of the file was generated on 2026-01-28 from the Common Locale Data Repository v48.1 http://www.unicode.org/cldr/ Do not edit this section: instead regenerate it using cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or edited) CLDR data; see qtbase/util/locale_database/. 174843 -
qhijricalendar_p.h 1248 -
qislamiccivilcalendar.cpp ! \since 5.14 \internal \class QIslamicCivilCalendar \inmodule QtCore \brief Implements a commonly-used computed version of the Islamic calendar. \section1 Civil Islamic Calendar QIslamicCivilCalendar implements a tabular version of the Hijri calendar which is known as the Islamic Civil Calendar. It has the same numbering of years and months, but the months are determined by arithmetical rules rather than by observation or astronomical calculations. \section2 Calendar Organization The civil calendar follows the usual tabular scheme of odd-numbered months and the last month of each leap year being 30 days long, the rest being 29 days long. Its determination of leap years follows a 30-year cycle, in each of which the years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26 and 29 are leap years. \sa QHijriCalendar, QCalendar 3594 -
qislamiccivilcalendar_p.h 1104 -
qjalalicalendar.cpp ! \since 5.14 \internal \class QJalaliCalendar \inmodule QtCore \brief The QJalaliCalendar class provides Jalali (Hijri Shamsi) calendar system implementation. \section1 Solar Hijri Calendar System The Solar Hijri calendar, also called the Solar Hejri calendar, Shamsi Hijri calendar or Jalali calendar, is the official calendar of Iran and Afghanistan. It begins on the vernal equinox (Nowruz) as determined by astronomical calculation for the Iran Standard Time meridian (52.5°E or GMT+3.5h). This determination of starting moment is more accurate than the Gregorian calendar for predicting the date of the vernal equinox, because it uses astronomical observations rather than mathematical rules. \section2 Calendar Organization Each of the twelve months corresponds with a zodiac sign. The first six months have 31 days, the next five have 30 days, and the last month has 29 days in usual years but 30 days in leap years. The New Year's Day always falls on the March equinox. \section2 Leap Year Rules The Solar Hijri calendar produces a five-year leap year interval after about every seven four-year leap year intervals. It usually follows a 33-year cycle with occasional interruptions by single 29-year or 37-year subcycles. The reason for this behavior is that it tracks the observed vernal equinox. By contrast, some less accurate predictive algorithms are in use based on confusion between the average tropical year (365.2422 days, approximated with near 128-year cycles or 2820-year great cycles) and the mean interval between spring equinoxes (365.2424 days, approximated with a near 33-year cycle). Source: \l {https://en.wikipedia.org/wiki/Solar_Hijri_calendar}{Wikipedia page on Solar Hijri Calendar} 6099 -
qjalalicalendar_data_p.h This part of the file was generated on 2025-11-13 from the Common Locale Data Repository v48 http://www.unicode.org/cldr/ Do not edit this section: instead regenerate it using cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or edited) CLDR data; see qtbase/util/locale_database/. 120507 -
qjalalicalendar_p.h 1455 -
qjuliancalendar.cpp ! \since 5.14 \internal \class QJulianCalendar \inmodule QtCore \brief The QJulianCalendar class provides Julian calendar system implementation. \section1 Julian Calendar The Julian calendar, proposed by Julius Caesar in 46 BC (708 AUC), was a reform of the Roman calendar. It took effect on 1 January 45 BC (AUC 709), by edict. It was the predominant calendar in the Roman world, most of Europe, and in European settlements in the Americas and elsewhere, until it was refined and gradually replaced by the Gregorian calendar, promulgated in 1582 by Pope Gregory XIII. The Julian calendar gains against the mean tropical year at the rate of one day in 128 years. For the Gregorian calendar, the figure is one day in 3030 years. The difference in the average length of the year between Julian (365.25 days) and Gregorian (365.2425 days) is 0.002%. Source: \l {https://en.wikipedia.org/wiki/Julian_calendar}{Wikipedia page on Julian Calendar} 2757 -
qjuliancalendar_p.h 1035 -
qlocaltime.cpp Qt represents n BCE as -n, whereas struct tm's tm_year field represents a year by the number of years after (negative for before) 1900, so that 1+m BCE is -1900 -m; so treating 1 BCE as 0 CE. We thus shift by different offsets depending on whether the year is BCE or CE. 30673 -
qlocaltime_p.h 1561 -
qmilankoviccalendar.cpp ! \since 5.14 \internal \class QMilankovicCalendar \inmodule QtCore \brief The QMilankovicCalendar class provides Milanković calendar system implementation. The Revised Julian calendar, also known as the Milanković calendar, or, less formally, new calendar, is a calendar, developed and proposed by the Serbian scientist Milutin Milanković in 1923, which effectively discontinued the 340 years of divergence between the naming of dates sanctioned by those Eastern Orthodox churches adopting it and the Gregorian calendar that has come to predominate worldwide. This calendar was intended to replace the ecclesiastical calendar based on the Julian calendar hitherto in use by all of the Eastern Orthodox Church. The Revised Julian calendar temporarily aligned its dates with the Gregorian calendar proclaimed in 1582 by Pope Gregory XIII for adoption by the Christian world. The calendar has been adopted by the Orthodox churches of Constantinople, Albania, Alexandria, Antioch, Bulgaria, Cyprus, Greece, Poland, and Romania. Source: \l {https://en.wikipedia.org/wiki/Revised_Julian_calendar}{Wikipedia page on Milanković Calendar} 4102 -
qmilankoviccalendar_p.h 1075 -
qromancalendar.cpp ! \since 5.14 \internal \class QRomanCalendar \inmodule QtCore \brief The QRomanCalendar class is a shared base for calendars based on the ancient Roman calendar. Calendars based on the ancient Roman calendar have several common properties: they have the same names for months, the month lengths depend in a common way on whether the year is a leap year. They differ in how they determine which years are leap years. \sa QGregorianCalendar, QJulianCalendar, QMilankovicCalendar 1656 -
qromancalendar_data_p.h This part of the file was generated on 2025-11-13 from the Common Locale Data Repository v48 http://www.unicode.org/cldr/ Do not edit this section: instead regenerate it using cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or edited) CLDR data; see qtbase/util/locale_database/. 428571 -
qromancalendar_p.h 1468 -
qtimezone.cpp 65907 -
qtimezone.h 10717 -
qtimezonelocale.cpp 48547 -
qtimezonelocale_data_p.h Locale-specific data for timezone naming. https://www.unicode.org/reports/tr35/tr35-68/tr35-dates.html#Time_Zone_Names Available data, per locale, from LocaleScanner.timeZoneNames(): formats: { 'hour': ('+HH:mm', '-HH:mm'), 'GMT': 'GMT%0', 'region': ("%0 Time", std, dst), 'fallback': "%1 (%0)" } zones: { ianaid: { 'exemplarCity': name, 'long': (gen, std, dst), 'short': (gen, std, dst) } } metazones: { meta: {'long': (gen, std, dst), 'short': (gen, std, dst) } } Mapped to C++ data-structures below (defined in QTZL_p.h) and used by QTZL.cpp, in conjunction with QTZP_data_p.h's locale-independent data conditioned on timezone_locale. 13995652 -
qtimezonelocale_p.h 6839 -
qtimezoneprivate.cpp Base class implementing common utility routines, only instantiate for a null tz. 95237 -
qtimezoneprivate_android.cpp Private Android implementation Note that a QJniObject manages a global reference, so it serves as an owning smart-pointer, ensuring an object doesn't get garbage-collected before we're done with it. 8024 -
qtimezoneprivate_chrono.cpp 7667 -
qtimezoneprivate_data_p.h Recognized UTC-offset zones and CLDR-derived data on timezone IDs. The UTC-offset zone table is provided for generic UTC±HH:mm format time zones. The UTC backend can support arbitrary offsets in seconds, but only advertises a limited repertoire of offsets as "available" in the normal sense. Windows Zone ID support is included in the default base class, QTZP, so can be used on all platforms, since an app running on Linux may need to communicate with a Windows Outlook server. These tables can also be used to look up Region Codes and UTC Offsets on platforms whose backends don't directly support them. For example, Darwin does not support availableTimeZones() filtering by region or offset. This table is auto-generated from the CLDR supplemental/windowsZones.xml data file, with IDs converted from CLDR-stable to IANA-current using bcp47/timezone.xml data. Please do not edit this data directly. See the generated section for details of its last update and how to update it. 236132 -
qtimezoneprivate_icu.cpp Private ICU implementation 15027 -
qtimezoneprivate_mac.mm Private Darwin system implementation https://developer.apple.com/documentation/foundation/nstimezone 12570 -
qtimezoneprivate_p.h 22980 -
qtimezoneprivate_tz.cpp Private tz file implementation 56619 -
qtimezoneprivate_win.cpp Private Windows system implementation 39645 -
qttemporalpattern.cpp ! \internal \since 6.12 \namespace QtTemporalPattern \brief Supporting types and functions for temporal patterns. Temporal patterns describe how a date, time or datetime may be serialized as text or parsed from text. This namespace provides the common tools used by the classes describing such patterns: \l QDateTimePattern, \l QTimePattern and \l QDatePattern. 55285 -
qttemporalpattern_p.h 12905 -