summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2019-02-28 14:44:02 +0100
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2019-03-04 16:47:57 +0100
commitac44b07f7ad305fe73c070ce38913b1578cc211a (patch)
treeb7ef30adfcd4ea35acb5ee88a362b2928e52301a
parentcda1cd96d88193ef8c76dda549a237dc2fb7589b (diff)
Resolves: tdf#123748 do not strip date part before calling Time::GetClock()
GetClock() needs it to properly scale and round the floating point value. It also handles negative values, fiddling with that is only needed for the [] formats. Regression from commit e2e47898180e547cad7ccde1e5890385d573e551 CommitDate: Fri Aug 31 12:50:52 2018 +0200 Use tools::Time::GetClock() in number formatter for wall clock time Change-Id: I05fe9e22886d4e59f110c0a826dadb43234d348a Reviewed-on: https://gerrit.libreoffice.org/68508 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 609ea85b530185910bf326201f785fd32bcbad2b) Reviewed-on: https://gerrit.libreoffice.org/68513 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
-rw-r--r--svl/source/numbers/zformat.cxx12
1 files changed, 2 insertions, 10 deletions
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index cce16ce94e97..bad3b224089c 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -2978,7 +2978,7 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
{
using namespace ::com::sun::star::i18n;
bool bCalendarSet = false;
- double fNumberOrig = fNumber;
+ const double fNumberOrig = fNumber;
bool bRes = false;
bool bSign = false;
if (fNumber < 0.0)
@@ -2998,10 +2998,6 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
return false;
}
}
- else
- {
- fNumber -= floor(fNumber); // Else truncate date
- }
bool bInputLine;
sal_Int32 nCntPost;
if ( rScan.GetStandardPrec() == SvNumberFormatter::INPUTSTRING_PRECISION &&
@@ -3015,10 +3011,6 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
bInputLine = false;
nCntPost = rInfo.nCntPost;
}
- if (bSign && !rInfo.bThousand) // No [] format
- {
- fNumber = 1.0 - fNumber; // "Inverse"
- }
OUStringBuffer sSecStr;
sal_Int32 nSecPos = 0; // For figure by figure processing
@@ -3027,7 +3019,7 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber,
{
sal_uInt16 nCHour, nCMinute, nCSecond;
double fFractionOfSecond;
- tools::Time::GetClock( fNumber, nCHour, nCMinute, nCSecond, fFractionOfSecond, nCntPost);
+ tools::Time::GetClock( fNumberOrig, nCHour, nCMinute, nCSecond, fFractionOfSecond, nCntPost);
nHour = nCHour;
nMin = nCMinute;
nSec = nCSecond;