[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - connectivity/source

Eike Rathke (via logerrit) logerrit at kemper.freedesktop.org
Fri Jun 14 12:16:11 UTC 2019


 connectivity/source/drivers/dbase/DTable.cxx |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

New commits:
commit 5daf494782505dbee27b97a43a79588106715b16
Author:     Eike Rathke <erack at redhat.com>
AuthorDate: Wed Jun 12 17:14:10 2019 +0200
Commit:     Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
CommitDate: Fri Jun 14 14:15:28 2019 +0200

    Resolves: tdf#125878 correct calculation of H:M:S from timestamp
    
    This apparently has been wrong since the beginning in 2009.
    
    It's a somewhat odd algorithm anyway, first calculating the time
    in seconds, minutes and hours, but maybe there's a reason
    regarding rounding, so not changing that.
    
    Change-Id: I855d2c96094b4edb1095d20bcdfebdea6d6d943a
    Reviewed-on: https://gerrit.libreoffice.org/73893
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Jenkins
    (cherry picked from commit 1436d2307d90f5ddbdcb0f129e59544306530342)
    Reviewed-on: https://gerrit.libreoffice.org/73915
    Reviewed-by: Julien Nabet <serval2412 at yahoo.fr>
    Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>

diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
index 858812193b8f..9e961cf793cb 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -185,8 +185,9 @@ void lcl_CalDate(sal_Int32 _nJulianDate,sal_Int32 _nJulianTime,css::util::DateTi
         double d_m = d_s / 60.0;
         double d_h  = d_m / 60.0;
         _rDateTime.Hours = static_cast<sal_uInt16>(d_h);
-        _rDateTime.Minutes = static_cast<sal_uInt16>(d_m);
-        _rDateTime.Seconds = static_cast<sal_uInt16>(( d_m - static_cast<double>(_rDateTime.Minutes) ) * 60.0);
+        _rDateTime.Minutes = static_cast<sal_uInt16>((d_h - static_cast<double>(_rDateTime.Hours)) * 60.0);
+        _rDateTime.Seconds = static_cast<sal_uInt16>(((d_m - static_cast<double>(_rDateTime.Minutes)) * 60.0)
+                - (static_cast<double>(_rDateTime.Hours) * 3600.0));
     }
 }
 


More information about the Libreoffice-commits mailing list