122bool QJalaliCalendar::dateToJulianDay(
int year,
int month,
int day, qint64 *jd)
const
125 if (!isDateValid(year, month, day))
128 const int y = year - (year < 0 ? 474 : 475);
129 const int c = qDiv<cycleYears>(y);
130 const int yearInCycle = y - c * cycleYears;
132 for (
int i = 1; i < month; ++i)
133 dayInYear += daysInMonth(i, year);
134 *jd = firstDayOfYear(yearInCycle, c) + dayInYear - 1;
138QCalendar::YearMonthDay QJalaliCalendar::julianDayToDate(qint64 jd)
const
140 const int c = cycle(jd);
141 int yearInCycle = qFloor((jd - cycleStart(c)) / yearLength);
142 int year = yearInCycle + 475 + c * cycleYears;
143 int day = jd - firstDayOfYear(yearInCycle, c) + 1;
144 if (day > daysInYear(year <= 0 ? year - 1 : year)) {
151 for (month = 1; month < 12; ++month) {
152 const int last = daysInMonth(month, year);
157 return QCalendar::YearMonthDay(year, month, day);