mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-05 19:19:39 -06:00
Use the et2utc function in case the normal date conversion fails
This commit is contained in:
@@ -557,6 +557,12 @@ public:
|
||||
ephemerisTime, format
|
||||
));
|
||||
}
|
||||
|
||||
if (outBuf[0] == '*') {
|
||||
// The conversion failed and we need to use et2utc
|
||||
constexpr int SecondsPrecision = 3;
|
||||
et2utc_c(ephemerisTime, "C", SecondsPrecision, bufferSize, outBuf);
|
||||
}
|
||||
}
|
||||
|
||||
std::string dateFromEphemerisTime(double ephemerisTime, const char* format);
|
||||
|
||||
@@ -588,16 +588,23 @@ double SpiceManager::ephemerisTimeFromDate(const char* timeString) const {
|
||||
|
||||
std::string SpiceManager::dateFromEphemerisTime(double ephemerisTime, const char* format)
|
||||
{
|
||||
char Buffer[128];
|
||||
std::memset(Buffer, char(0), 128);
|
||||
constexpr int BufferSize = 128;
|
||||
char Buffer[BufferSize];
|
||||
std::memset(Buffer, char(0), BufferSize);
|
||||
|
||||
timout_c(ephemerisTime, format, 128, Buffer);
|
||||
timout_c(ephemerisTime, format, BufferSize, Buffer);
|
||||
if (failed_c()) {
|
||||
throwSpiceError(fmt::format(
|
||||
"Error converting ephemeris time '{}' to date with format '{}'",
|
||||
ephemerisTime, format
|
||||
));
|
||||
}
|
||||
if (Buffer[0] == '*') {
|
||||
// The conversion failed and we need to use et2utc
|
||||
constexpr int SecondsPrecision = 3;
|
||||
et2utc_c(ephemerisTime, "C", SecondsPrecision, BufferSize, Buffer);
|
||||
}
|
||||
|
||||
|
||||
return std::string(Buffer);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user