119bool QJalaliCalendar::dateToJulianDay(
int year,
int month,
int day, qint64 *jd)
const
122 if (!isDateValid(year, month, day))
125 const int y = year - (year < 0 ? 474 : 475);
126 const int c = qDiv<cycleYears>(y);
127 const int yearInCycle = y - c * cycleYears;
129 for (
int i = 1; i < month; ++i)
130 dayInYear += daysInMonth(i, year);
131 *jd = firstDayOfYear(yearInCycle, c) + dayInYear - 1;
135QCalendar::YearMonthDay QJalaliCalendar::julianDayToDate(qint64 jd)
const
137 const int c = cycle(jd);
138 int yearInCycle = qFloor((jd - cycleStart(c)) / yearLength);
139 int year = yearInCycle + 475 + c * cycleYears;
140 int day = jd - firstDayOfYear(yearInCycle, c) + 1;
141 if (day > daysInYear(year <= 0 ? year - 1 : year)) {
148 for (month = 1; month < 12; ++month) {
149 const int last = daysInMonth(month, year);
154 return QCalendar::YearMonthDay(year, month, day);