| 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 |
- |