Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qhijricalendar.cpp
Go to the documentation of this file.
1
// Copyright (C) 2020 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
"qglobal.h"
5
#
include
"qhijricalendar_p.h"
6
#
include
"qhijricalendar_data_p.h"
7
8
QT_BEGIN_NAMESPACE
9
10
/*!
11
\since 5.14
12
\internal
13
14
\class QHijriCalendar
15
\inmodule QtCore
16
\brief The QHijriCalendar class supports Islamic (Hijri) calendar implementations.
17
18
\section1 Islamic Calendar System
19
20
The Islamic, Muslim, or Hijri calendar is a lunar calendar consisting of 12
21
months in a year of 354 or 355 days. It is used (often alongside the
22
Gregorian calendar) to date events in many Muslim countries. It is also used
23
by Muslims to determine the proper days of Islamic holidays and rituals,
24
such as the annual period of fasting and the proper time for the pilgrimage
25
to Mecca.
26
27
Source: \l {https://en.wikipedia.org/wiki/Islamic_calendar}{Wikipedia page
28
on Hijri Calendar}
29
30
\section1 Support for variants
31
32
This base class provides the common details shared by all variants on the
33
Islamic calendar. Each year comprises 12 months of 29 or 30 days each; most
34
years have as many of 29 as of 30, but leap years extend one 29-day month to
35
30 days. In tabular versions of the calendar (where mathematical rules are
36
used to determine the details), odd-numbered months have 30 days, as does
37
the last (twelfth) month of a leap year; all other months have 29
38
days. Other versions are based on actual astronomical observations of the
39
moon's phase at sunset, which vary from place to place.
40
41
\sa QIslamicCivilCalendar, QCalendar
42
*/
43
44
bool
QHijriCalendar::isLunar()
const
45
{
46
return
true
;
47
}
48
49
bool
QHijriCalendar::isLuniSolar()
const
50
{
51
return
false
;
52
}
53
54
bool
QHijriCalendar::isSolar()
const
55
{
56
return
false
;
57
}
58
59
int
QHijriCalendar::daysInMonth(
int
month,
int
year)
const
60
{
61
if
(year == 0 || month < 1 || month > 12)
62
return
0;
63
64
if
(month == 12 && (year == QCalendar::Unspecified || isLeapYear(year)))
65
return
30;
66
67
return
month % 2 == 0 ? 29 : 30;
68
}
69
70
int
QHijriCalendar::maximumDaysInMonth()
const
71
{
72
return
30;
73
}
74
75
int
QHijriCalendar::daysInYear(
int
year)
const
76
{
77
return
monthsInYear(year) ? isLeapYear(year) ? 355 : 354 : 0;
78
}
79
80
const
QCalendarLocale *QHijriCalendar::localeMonthIndexData()
const
81
{
82
return
QtPrivate::Hijri::locale_data;
83
}
84
85
const
char16_t
*QHijriCalendar::localeMonthData()
const
86
{
87
return
QtPrivate::Hijri::months_data;
88
}
89
90
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
qtbase
src
corelib
time
qhijricalendar.cpp
Generated on Mon Mar 10 2025 00:40:32 for Qt by
1.13.2