Implemented new time_t tools for datetime conversions.

This commit is contained in:
Ruben Thoms
2020-12-10 12:40:16 +01:00
committed by Magne Sjaastad
parent 7b5594ce7c
commit a9ca175515
4 changed files with 88 additions and 5 deletions
@@ -44,6 +44,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RiaFieldHandleTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaBoundingBoxTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogUnitTools.h
${CMAKE_CURRENT_LIST_DIR}/RiaWellLogUnitTools.inl
${CMAKE_CURRENT_LIST_DIR}/RiaTimeTTools.h
)
set (SOURCE_GROUP_SOURCE_FILES
@@ -84,6 +85,7 @@ ${CMAKE_CURRENT_LIST_DIR}/RiaGitDiff.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaCellDividingTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaFieldHandleTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaBoundingBoxTools.cpp
${CMAKE_CURRENT_LIST_DIR}/RiaTimeTTools.cpp
)
list(APPEND CODE_HEADER_FILES
@@ -0,0 +1,50 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2020 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RiaTimeTTools.h"
#include <QDateTime>
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RiaTimeTTools::toDouble( time_t time )
{
double milliSecSinceEpoch = time * 1000; // This is kind of hack, as the c++ standard does not state what
// time_t is. "Almost always" secs since epoch according to
// cppreference.com
return milliSecSinceEpoch;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
time_t RiaTimeTTools::fromDouble( double time )
{
time_t timet = static_cast<time_t>( time / 1000 );
return timet;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
time_t RiaTimeTTools::fromQDateTime( const QDateTime& dateTime )
{
time_t timet = dateTime.toSecsSinceEpoch();
return timet;
}
@@ -0,0 +1,34 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2020 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include <ctime>
class QDateTime;
//==================================================================================================
//
//==================================================================================================
class RiaTimeTTools
{
public:
static double toDouble( time_t time );
static time_t fromDouble( double time );
static time_t fromQDateTime( const QDateTime& dateTime );
};
@@ -21,6 +21,7 @@
#include "RiaCurveDataTools.h"
#include "RiaImageTools.h"
#include "RiaTimeTTools.h"
#include "RiuQwtSymbol.h"
@@ -392,11 +393,7 @@ std::vector<double> RiuQwtPlotCurve::fromTime_t( const std::vector<time_t>& time
doubleValues.reserve( timeSteps.size() );
for ( const auto& time : timeSteps )
{
double milliSecSinceEpoch = time * 1000; // This is kind of hack, as the c++ standard does not state what
// time_t is. "Almost always" secs since epoch according to
// cppreference.com
doubleValues.push_back( milliSecSinceEpoch );
doubleValues.push_back( RiaTimeTTools::toDouble( time ) );
}
}