basic/source/runtime/methods.cxx | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-)
New commits: commit a68493266e9212119f31e58c256f00fb9bcc8d20 Author: Damjan Jovanovic <[email protected]> Date: Wed Aug 26 02:10:46 2015 +0000 #i117989# Basic functions Day(), Hour(), Minute(), and Second() return wrong results for dates <1900-1-1 Also extended our spreadsheeet test to search through more columns, open spreadsheets with macros enabled, and added a test for the the Year(), Month(), Day(), Hour(), Minute(), and Second() functions comparing Calc's formulas vs StarBasic's runtime functions. Found-by: villeroy Patch-by: Damjan Jovanovic diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index 88e1aca..6d5b036 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -1789,17 +1789,9 @@ RTLFUNC(Val) sal_Int16 implGetDateDay( double aDate ) { aDate -= 2.0; // normieren: 1.1.1900 => 0.0 + aDate = floor( aDate ); Date aRefDate( 1, 1, 1900 ); - if ( aDate >= 0.0 ) - { - aDate = floor( aDate ); - aRefDate += (sal_uIntPtr)aDate; - } - else - { - aDate = ceil( aDate ); - aRefDate -= (sal_uIntPtr)(-1.0 * aDate); - } + aRefDate += (sal_uIntPtr)aDate; sal_Int16 nRet = (sal_Int16)( aRefDate.GetDay() ); return nRet; @@ -2110,8 +2102,6 @@ RTLFUNC(Year) sal_Int16 implGetHour( double dDate ) { - if( dDate < 0.0 ) - dDate *= -1.0; double nFrac = dDate - floor( dDate ); nFrac *= 86400.0; sal_Int32 nSeconds = (sal_Int32)(nFrac + 0.5); @@ -2136,8 +2126,6 @@ RTLFUNC(Hour) sal_Int16 implGetMinute( double dDate ) { - if( dDate < 0.0 ) - dDate *= -1.0; double nFrac = dDate - floor( dDate ); nFrac *= 86400.0; sal_Int32 nSeconds = (sal_Int32)(nFrac + 0.5); @@ -2177,8 +2165,6 @@ RTLFUNC(Month) sal_Int16 implGetSecond( double dDate ) { - if( dDate < 0.0 ) - dDate *= -1.0; double nFrac = dDate - floor( dDate ); nFrac *= 86400.0; sal_Int32 nSeconds = (sal_Int32)(nFrac + 0.5); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
