summaryrefslogtreecommitdiffstats
path: root/src/corelib/time/qjalalicalendar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/time/qjalalicalendar.cpp')
-rw-r--r--src/corelib/time/qjalalicalendar.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/corelib/time/qjalalicalendar.cpp b/src/corelib/time/qjalalicalendar.cpp
index 3bc38ec1b5..fcbdf14395 100644
--- a/src/corelib/time/qjalalicalendar.cpp
+++ b/src/corelib/time/qjalalicalendar.cpp
@@ -13,16 +13,17 @@ using namespace QRoundingDown;
// Constants
-static const qint64 cycleDays = 1029983;
-static const int cycleYears = 2820;
-static const double yearLength = 365.24219858156028368; // 365 + leapRatio;
-static const qint64 jalaliEpoch = 2121446; // 475/01/01 AP, start of 2820 cycle
+constexpr qint64 cycleDays = 1029983;
+constexpr int cycleYears = 2820;
+constexpr double yearLength = 365.24219858156028368; // 365 + 683 / 2820.
+constexpr qint64 jalaliEpoch = 2121446; // 475/01/01 AP, start of 2820 cycle
+// This appears to be based on Ahmad Birashk's algorithm.
// Calendar implementation
static inline int cycle(qint64 jdn)
{
- return qDiv(jdn - jalaliEpoch, cycleDays);
+ return qDiv<cycleDays>(jdn - jalaliEpoch);
}
qint64 cycleStart(int cycleNo)
@@ -75,7 +76,7 @@ qint64 firstDayOfYear(int year, int cycleNo)
Source: \l {https://en.wikipedia.org/wiki/Solar_Hijri_calendar}{Wikipedia
page on Solar Hijri Calendar}
- */
+*/
QString QJalaliCalendar::name() const
{
@@ -96,7 +97,7 @@ bool QJalaliCalendar::isLeapYear(int year) const
return false;
if (year < 0)
year++;
- return qMod((year + 2346) * 683, 2820) < 683;
+ return qMod<2820>((year + 2346) * 683) < 683;
}
bool QJalaliCalendar::isLunar() const
@@ -121,7 +122,7 @@ bool QJalaliCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd)
return false;
const int y = year - (year < 0 ? 474 : 475);
- const int c = qDiv(y, cycleYears);
+ const int c = qDiv<cycleYears>(y);
const int yearInCycle = y - c * cycleYears;
int dayInYear = day;
for (int i = 1; i < month; ++i)
@@ -162,12 +163,12 @@ int QJalaliCalendar::daysInMonth(int month, int year) const
const QCalendarLocale *QJalaliCalendar::localeMonthIndexData() const
{
- return locale_data;
+ return QtPrivate::Jalali::locale_data;
}
const char16_t *QJalaliCalendar::localeMonthData() const
{
- return months_data;
+ return QtPrivate::Jalali::months_data;
}
QT_END_NAMESPACE