120bool QJalaliCalendar::dateToJulianDay(
int year,
int month,
int day, qint64 *jd)
const
123 if (!isDateValid(year, month, day))
126 const int y = year - (year < 0 ? 474 : 475);
127 const int c = qDiv<cycleYears>(y);
128 const int yearInCycle = y - c * cycleYears;
130 for (
int i = 1; i < month; ++i)
131 dayInYear += daysInMonth(i, year);
132 *jd = firstDayOfYear(yearInCycle, c) + dayInYear - 1;
136QCalendar::YearMonthDay QJalaliCalendar::julianDayToDate(qint64 jd)
const
138 const int c = cycle(jd);
139 int yearInCycle = qFloor((jd - cycleStart(c)) / yearLength);
140 int year = yearInCycle + 475 + c * cycleYears;
141 int day = jd - firstDayOfYear(yearInCycle, c) + 1;
142 if (day > daysInYear(year <= 0 ? year - 1 : year)) {
149 for (month = 1; month < 12; ++month) {
150 const int last = daysInMonth(month, year);
155 return QCalendar::YearMonthDay(year, month, day);