//---------------------------------------- int32_t CMission::Convert(CDate& date, uint32_t& cycle, uint32_t& pass) { double dateJulian = 0.0; double dateJulianRef = 0.0; int32_t result = BRATHL_SUCCESS; if (m_nbPass == 0) { return BRATHL_ERROR_INVALID_NB_PASS; } if (m_repeat == 0) { return BRATHL_ERROR_INVALID_REPETITION; } /* if ((cycle == NULL) || (size <= 0)) { return BRATHL_ERROR_INVALID_CTODATE_PARAMETER; } */ date.Convert2DecimalJulian(dateJulian); m_dateRef.Convert2DecimalJulian(dateJulianRef); double absRef = m_passRef + (m_cycleRef - 1) * m_nbPass + 0.5; double passLength = m_repeat / m_nbPass; double deltaPass = (dateJulian - dateJulianRef) / passLength; double abs = absRef + deltaPass - 1; cycle = 1 + static_cast<int32_t>((abs) / m_nbPass); pass = 1 + static_cast<int32_t>((abs)) % m_nbPass; return result; }