From cb8b773f23e17e1c050c27062fcce0abd749d838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rnar=20Grip=20Fj=C3=A6r?= Date: Thu, 6 Apr 2017 12:22:27 +0200 Subject: [PATCH] #1362 Support timesteps with higher resolution than seconds --- .../RifEclipseOutputFileTools.cpp | 5 ++++- .../ProjectDataModel/RimEclipseCase.cpp | 22 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/ApplicationCode/FileInterface/RifEclipseOutputFileTools.cpp b/ApplicationCode/FileInterface/RifEclipseOutputFileTools.cpp index 7aaebe34e2..3e62ea6082 100644 --- a/ApplicationCode/FileInterface/RifEclipseOutputFileTools.cpp +++ b/ApplicationCode/FileInterface/RifEclipseOutputFileTools.cpp @@ -162,9 +162,12 @@ void RifEclipseOutputFileTools::timeSteps(ecl_file_type* ecl_file, std::vector(dayFraction * 24.0 * 60.0 * 60.0); + int milliseconds = static_cast(dayFraction * 24.0 * 60.0 * 60.0 * 1000.0); + int seconds = milliseconds % 1000; + milliseconds -= seconds * 1000; QTime time(0, 0); time = time.addSecs(seconds); + time = time.addMSecs(milliseconds); reportDateTime.setTime(time); diff --git a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp index 38ba9046e2..ee93606ae5 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseCase.cpp @@ -579,19 +579,39 @@ QString RimEclipseCase::timeStepName(int frameIdx) if (m_timeStepFormatString.isEmpty()) { bool hasHoursAndMinutesInTimesteps = false; + bool hasSecondsInTimesteps = false; + bool hasMillisecondsInTimesteps = false; for (size_t i = 0; i < timeStepDates.size(); i++) { - if (timeStepDates[i].time().hour() != 0.0 || timeStepDates[i].time().minute() != 0.0) + if (timeStepDates[i].time().msec() != 0.0) { + hasMillisecondsInTimesteps = true; + hasSecondsInTimesteps = true; hasHoursAndMinutesInTimesteps = true; break; } + else if (timeStepDates[i].time().second() != 0.0) { + hasHoursAndMinutesInTimesteps = true; + hasSecondsInTimesteps = true; + } + else if (timeStepDates[i].time().hour() != 0.0 || timeStepDates[i].time().minute() != 0.0) + { + hasHoursAndMinutesInTimesteps = true; + } } m_timeStepFormatString = "dd.MMM yyyy"; if (hasHoursAndMinutesInTimesteps) { m_timeStepFormatString += " - hh:mm"; + if (hasSecondsInTimesteps) + { + m_timeStepFormatString += ":ss"; + if (hasMillisecondsInTimesteps) + { + m_timeStepFormatString += ".zzz"; + } + } } }