diff options
34 files changed, 96 insertions, 101 deletions
diff --git a/chart2/source/tools/NumberFormatterWrapper.cxx b/chart2/source/tools/NumberFormatterWrapper.cxx index ead2d47e4cb4..11597d87818a 100644 --- a/chart2/source/tools/NumberFormatterWrapper.cxx +++ b/chart2/source/tools/NumberFormatterWrapper.cxx @@ -79,9 +79,7 @@ Date NumberFormatterWrapper::getNullDate() const } else if( m_pNumberFormatter ) { - Date* pDate = m_pNumberFormatter->GetNullDate(); - if( pDate ) - aRet = *pDate; + aRet = m_pNumberFormatter->GetNullDate(); } return aRet; } @@ -101,13 +99,10 @@ OUString NumberFormatterWrapper::getFormattedString( sal_Int32 nNumberFormatKey, sal_uInt16 nDay = 30,nMonth = 12; if ( m_aNullDate.hasValue() ) { - Date* pDate = m_pNumberFormatter->GetNullDate(); - if ( pDate ) - { - nYear = pDate->GetYear(); - nMonth = pDate->GetMonth(); - nDay = pDate->GetDay(); - } // if ( pDate ) + const Date& rDate = m_pNumberFormatter->GetNullDate(); + nYear = rDate.GetYear(); + nMonth = rDate.GetMonth(); + nDay = rDate.GetDay(); util::Date aNewNullDate; m_aNullDate >>= aNewNullDate; m_pNumberFormatter->ChangeNullDate(aNewNullDate.Day,aNewNullDate.Month,aNewNullDate.Year); diff --git a/cui/source/options/optupdt.cxx b/cui/source/options/optupdt.cxx index d229fef9f242..fef9e395d7f9 100644 --- a/cui/source/options/optupdt.cxx +++ b/cui/source/options/optupdt.cxx @@ -145,10 +145,10 @@ void SvxOnlineUpdateTabPage::UpdateLastCheckedText() LanguageType eUILang = Application::GetSettings().GetUILanguageTag().getLanguageType(); SvNumberFormatter *pNumberFormatter = new SvNumberFormatter( ::comphelper::getProcessComponentContext(), eUILang ); Color* pColor = nullptr; - Date* pNullDate = pNumberFormatter->GetNullDate(); + const Date& rNullDate = pNumberFormatter->GetNullDate(); sal_uInt32 nFormat = pNumberFormatter->GetStandardFormat( css::util::NumberFormat::DATE, eUILang ); - pNumberFormatter->GetOutputString( aDate - *pNullDate, nFormat, aDateStr, &pColor ); + pNumberFormatter->GetOutputString( aDate - rNullDate, nFormat, aDateStr, &pColor ); nFormat = pNumberFormatter->GetStandardFormat( css::util::NumberFormat::TIME, eUILang ); pNumberFormatter->GetOutputString( aTime.GetTimeInDays(), nFormat, aTimeStr, &pColor ); diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx index cb2c69f3abb1..deff10eb19b6 100644 --- a/editeng/source/items/flditem.cxx +++ b/editeng/source/items/flditem.cxx @@ -479,7 +479,7 @@ OUString SvxDateField::GetFormatted( Date& aDate, SvxDateFormat eFormat, SvNumbe nFormatKey = rFormatter.GetStandardFormat( css::util::NumberFormat::DATE, eLang ); } - double fDiffDate = aDate - *(rFormatter.GetNullDate()); + double fDiffDate = aDate - rFormatter.GetNullDate(); OUString aStr; Color* pColor = nullptr; rFormatter.GetOutputString( fDiffDate, nFormatKey, aStr, &pColor ); diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx index dc6e6d492b72..8381a7abad88 100644 --- a/extensions/source/propctrlr/standardcontrol.cxx +++ b/extensions/source/propctrlr/standardcontrol.cxx @@ -281,7 +281,7 @@ namespace pcr ::DateTime aDateTime( ::DateTime::EMPTY ); ::utl::typeConvert( aUNODateTime, aDateTime ); - double nValue = aDateTime - ::DateTime( *getTypedControlWindow()->GetFormatter()->GetNullDate() ); + double nValue = aDateTime - ::DateTime( getTypedControlWindow()->GetFormatter()->GetNullDate() ); getTypedControlWindow()->SetValue( nValue ); } } @@ -294,7 +294,7 @@ namespace pcr { double nValue = getTypedControlWindow()->GetValue(); - ::DateTime aDateTime( *getTypedControlWindow()->GetFormatter()->GetNullDate() ); + ::DateTime aDateTime( getTypedControlWindow()->GetFormatter()->GetNullDate() ); // add the "days" part double nDays = floor( nValue ); diff --git a/include/svl/zforlist.hxx b/include/svl/zforlist.hxx index f6f338972886..a22e05afb731 100644 --- a/include/svl/zforlist.hxx +++ b/include/svl/zforlist.hxx @@ -574,7 +574,7 @@ public: LanguageType eLnge, SvNumberformat* pFormat ); /// Return the reference date - Date* GetNullDate(); + const Date& GetNullDate(); /// Return the standard decimal precision sal_uInt16 GetStandardPrec(); /// Return whether zero suppression is switched on diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 2256947ed7b7..5c5c3125851c 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -1619,11 +1619,11 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const const Date& rActDate = *mpCache; SvNumberFormatter* pFormatter = mpDoc->GetFormatTable(); - long nCurrentDate = rActDate - *(pFormatter->GetNullDate()); + long nCurrentDate = rActDate - pFormatter->GetNullDate(); double nVal = rCell.getValue(); long nCellDate = (long) ::rtl::math::approxFloor(nVal); - Date aCellDate = *(pFormatter->GetNullDate()); + Date aCellDate = pFormatter->GetNullDate(); aCellDate += (long) ::rtl::math::approxFloor(nVal); switch(meType) diff --git a/sc/source/core/data/dbdocutl.cxx b/sc/source/core/data/dbdocutl.cxx index 4f8f2bba8f45..0dc3d4f8b014 100644 --- a/sc/source/core/data/dbdocutl.cxx +++ b/sc/source/core/data/dbdocutl.cxx @@ -95,7 +95,7 @@ void ScDatabaseDocUtil::PutData( ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB SvNumberFormatter* pFormTable = pDoc->GetFormatTable(); nFormatIndex = pFormTable->GetStandardFormat( css::util::NumberFormat::DATE, ScGlobal::eLnge ); - nVal = Date( aDate ) - *pFormTable->GetNullDate(); + nVal = Date( aDate ) - pFormTable->GetNullDate(); } bValue = true; } @@ -125,7 +125,7 @@ void ScDatabaseDocUtil::PutData( ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB util::DateTime aStamp = xRow->getTimestamp(nRowPos); nVal = ( Date( aStamp.Day, aStamp.Month, aStamp.Year ) - - *pFormTable->GetNullDate() ) + + pFormTable->GetNullDate() ) + aStamp.Hours / static_cast<double>(::tools::Time::hourPerDay) + aStamp.Minutes / static_cast<double>(::tools::Time::minutePerDay) + aStamp.Seconds / static_cast<double>(::tools::Time::secondPerDay) + diff --git a/sc/source/core/data/dpgroup.cxx b/sc/source/core/data/dpgroup.cxx index 97c87bff236f..1c2dcaed5164 100644 --- a/sc/source/core/data/dpgroup.cxx +++ b/sc/source/core/data/dpgroup.cxx @@ -694,7 +694,7 @@ void ScDPGroupTableData::ModifyFilterCriteria(vector<ScDPFilteredCache::Criterio // grouped by dates. aCri.mpFilter.reset( new ScDPGroupDateFilter( - aMatchValues, *pDoc->GetFormatTable()->GetNullDate(), *pNumInfo)); + aMatchValues, pDoc->GetFormatTable()->GetNullDate(), *pNumInfo)); } else { @@ -727,7 +727,7 @@ void ScDPGroupTableData::ModifyFilterCriteria(vector<ScDPFilteredCache::Criterio aCri.mnFieldIndex = nSrcDim; // use the source dimension, not the group dimension. aCri.mpFilter.reset( new ScDPGroupDateFilter( - aMatchValues, *pDoc->GetFormatTable()->GetNullDate(), *pNumInfo)); + aMatchValues, pDoc->GetFormatTable()->GetNullDate(), *pNumInfo)); aNewCriteria.push_back(aCri); } diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx index 2ae64ecf64e3..3e07c82eddf1 100644 --- a/sc/source/core/data/dpobject.cxx +++ b/sc/source/core/data/dpobject.cxx @@ -3224,7 +3224,7 @@ const ScDPCache* ScDPCollection::DBCaches::getCache( ::std::unique_ptr<ScDPCache> pCache(new ScDPCache(mpDoc)); SvNumberFormatter aFormat( comphelper::getProcessComponentContext(), ScGlobal::eLnge); - DBConnector aDB(*pCache, xRowSet, *aFormat.GetNullDate()); + DBConnector aDB(*pCache, xRowSet, aFormat.GetNullDate()); if (!aDB.isValid()) return nullptr; @@ -3327,7 +3327,7 @@ void ScDPCollection::DBCaches::updateCache( } SvNumberFormatter aFormat( comphelper::getProcessComponentContext(), ScGlobal::eLnge); - DBConnector aDB(rCache, xRowSet, *aFormat.GetNullDate()); + DBConnector aDB(rCache, xRowSet, aFormat.GetNullDate()); if (!aDB.isValid()) return; diff --git a/sc/source/core/data/dputil.cxx b/sc/source/core/data/dputil.cxx index 440ac8d4e0bc..5bff6bb4d927 100644 --- a/sc/source/core/data/dputil.cxx +++ b/sc/source/core/data/dputil.cxx @@ -122,7 +122,7 @@ OUString ScDPUtil::getDateGroupName( { Date aDate(1, 1, SC_DP_LEAPYEAR); aDate += (nValue - 1); // nValue is 1-based - Date aNullDate = *pFormatter->GetNullDate(); + Date aNullDate = pFormatter->GetNullDate(); long nDays = aDate - aNullDate; const sal_uInt32 nFormat = pFormatter->GetFormatIndex(NF_DATE_SYS_DDMMM, ScGlobal::eLnge); @@ -334,7 +334,7 @@ sal_Int32 ScDPUtil::getDatePartValue( } else { - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long)::rtl::math::approxFloor(fValue); switch ( nDatePart ) diff --git a/sc/source/core/data/global2.cxx b/sc/source/core/data/global2.cxx index 1ef86f537b23..ab50f5aae7a4 100644 --- a/sc/source/core/data/global2.cxx +++ b/sc/source/core/data/global2.cxx @@ -590,7 +590,7 @@ Label_fallback_to_unambiguous: else { if (pFormatter) - fValue = aDate - *(pFormatter->GetNullDate()); + fValue = aDate - pFormatter->GetNullDate(); else { SAL_WARN("sc.core","ScGlobal::ConvertStringToValue - fixed null date"); diff --git a/sc/source/core/data/table4.cxx b/sc/source/core/data/table4.cxx index 324eb2201a93..77d51762f3ef 100644 --- a/sc/source/core/data/table4.cxx +++ b/sc/source/core/data/table4.cxx @@ -267,7 +267,7 @@ void ScTable::FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, if (nCount > 1) { double nVal; - Date aNullDate = *pDocument->GetFormatTable()->GetNullDate(); + Date aNullDate = pDocument->GetFormatTable()->GetNullDate(); Date aDate1 = aNullDate; nVal = aFirstCell.mfValue; aDate1 += (long)nVal; @@ -1077,7 +1077,7 @@ void ScTable::IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillD const sal_uInt16 nMaxYear = 9956; long nInc = (long) nStep; // upper/lower limits ? - Date aNullDate = *pDocument->GetFormatTable()->GetNullDate(); + Date aNullDate = pDocument->GetFormatTable()->GetNullDate(); Date aDate = aNullDate; aDate += (long)rVal; switch (eCmd) diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx index 75a1d6b2debe..2eefbc3093c2 100644 --- a/sc/source/core/tool/interpr2.cxx +++ b/sc/source/core/tool/interpr2.cxx @@ -94,7 +94,7 @@ double ScInterpreter::GetDateSerial( sal_Int16 nYear, sal_Int16 nMonth, sal_Int1 if (!bStrict) aDate += nDay - 1; if (aDate.IsValidAndGregorian()) - return (double) (aDate - *(pFormatter->GetNullDate())); + return (double) (aDate - pFormatter->GetNullDate()); else { SetError(FormulaError::NoValue); @@ -106,7 +106,7 @@ void ScInterpreter::ScGetActDate() { nFuncFmtType = css::util::NumberFormat::DATE; Date aActDate( Date::SYSTEM ); - long nDiff = aActDate - *(pFormatter->GetNullDate()); + long nDiff = aActDate - pFormatter->GetNullDate(); PushDouble((double) nDiff); } @@ -114,7 +114,7 @@ void ScInterpreter::ScGetActTime() { nFuncFmtType = css::util::NumberFormat::DATETIME; Date aActDate( Date::SYSTEM ); - long nDiff = aActDate - *(pFormatter->GetNullDate()); + long nDiff = aActDate - pFormatter->GetNullDate(); tools::Time aActTime( tools::Time::SYSTEM ); double nTime = aActTime.GetHour() / static_cast<double>(::tools::Time::hourPerDay) + aActTime.GetMin() / static_cast<double>(::tools::Time::minutePerDay) + @@ -125,21 +125,21 @@ void ScInterpreter::ScGetActTime() void ScInterpreter::ScGetYear() { - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); PushDouble( (double) aDate.GetYear() ); } void ScInterpreter::ScGetMonth() { - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); PushDouble( (double) aDate.GetMonth() ); } void ScInterpreter::ScGetDay() { - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); PushDouble((double) aDate.GetDay()); } @@ -199,7 +199,7 @@ void ScInterpreter::ScGetDayOfWeek() else nFlag = 1; - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); int nVal = (int) aDate.GetDayOfWeek(); // MONDAY = 0 switch (nFlag) @@ -241,7 +241,7 @@ void ScInterpreter::ScWeeknumOOo() { sal_Int16 nFlag = GetInt16(); - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); PushInt( (int) aDate.GetWeekOfYear( nFlag == 1 ? SUNDAY : MONDAY )); } @@ -258,7 +258,7 @@ void ScInterpreter::ScGetWeekOfYear() else nFlag = GetInt16(); - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); sal_Int32 nMinimumNumberOfDaysInWeek; @@ -301,7 +301,7 @@ void ScInterpreter::ScGetIsoWeekOfYear() { if ( MustHaveParamCount( GetByte(), 1 ) ) { - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += (long) GetInt32(); PushInt( (int) aDate.GetWeekOfYear() ); } @@ -513,7 +513,7 @@ void ScInterpreter::ScNetWorkdays( bool bOOXML_Version ) { vector<double> nSortArray; bool bWeekendMask[ 7 ]; - Date aNullDate = *( pFormatter->GetNullDate() ); + Date aNullDate = pFormatter->GetNullDate(); sal_uInt32 nNullDate = Date::DateToDays( aNullDate.GetDay(), aNullDate.GetMonth(), aNullDate.GetYear() ); FormulaError nErr; if ( bOOXML_Version ) @@ -574,7 +574,7 @@ void ScInterpreter::ScWorkday_MS() nFuncFmtType = css::util::NumberFormat::DATE; vector<double> nSortArray; bool bWeekendMask[ 7 ]; - Date aNullDate = *( pFormatter->GetNullDate() ); + Date aNullDate = pFormatter->GetNullDate(); sal_uInt32 nNullDate = Date::DateToDays( aNullDate.GetDay(), aNullDate.GetMonth(), aNullDate.GetYear() ); FormulaError nErr = GetWeekendAndHolidayMasks_MS( nParamCount, nNullDate, nSortArray, bWeekendMask, true ); @@ -736,9 +736,9 @@ void ScInterpreter::ScGetDiffDate360() } else fSign = 1.0; - Date aDate1 = *(pFormatter->GetNullDate()); + Date aDate1 = pFormatter->GetNullDate(); aDate1 += (long) ::rtl::math::approxFloor(nDate1); - Date aDate2 = *(pFormatter->GetNullDate()); + Date aDate2 = pFormatter->GetNullDate(); aDate2 += (long) ::rtl::math::approxFloor(nDate2); if (aDate1.GetDay() == 31) aDate1 -= (sal_uLong) 1; @@ -810,12 +810,12 @@ void ScInterpreter::ScGetDateDif() // split dates in day, month, year for use with formats other than "d" sal_uInt16 d1, m1, d2, m2; sal_Int16 y1, y2; - Date aDate1( *( pFormatter->GetNullDate())); + Date aDate1( pFormatter->GetNullDate()); aDate1 += nDate1; y1 = aDate1.GetYear(); m1 = aDate1.GetMonth(); d1 = aDate1.GetDay(); - Date aDate2( *( pFormatter->GetNullDate())); + Date aDate2( pFormatter->GetNullDate()); aDate2 += nDate2; y2 = aDate2.GetYear(); m2 = aDate2.GetMonth(); diff --git a/sc/source/core/tool/interpr8.cxx b/sc/source/core/tool/interpr8.cxx index b661a220ec27..96da08bb6e58 100644 --- a/sc/source/core/tool/interpr8.cxx +++ b/sc/source/core/tool/interpr8.cxx @@ -192,7 +192,7 @@ bool ScETSForecastCalculation::PreprocessDataRange( const ScMatrixRef& rMatX, co // Method: assume there is an month interval and verify. // If month interval is used, replace maRange.X with month values // for ease of calculations. - Date aNullDate = *( mpFormatter->GetNullDate() ); + Date aNullDate = mpFormatter->GetNullDate(); Date aDate = aNullDate + static_cast< long >( maRange[ 0 ].X ); mnMonthDay = aDate.GetDay(); for ( SCSIZE i = 1; i < mnCount && mnMonthDay; i++ ) @@ -812,7 +812,7 @@ void ScETSForecastCalculation::refill() double ScETSForecastCalculation::convertXtoMonths( double x ) { - Date aNullDate = *( mpFormatter->GetNullDate() ); + Date aNullDate = mpFormatter->GetNullDate(); Date aDate = aNullDate + static_cast< long >( x ); int nYear = aDate.GetYear(); int nMonth = aDate.GetMonth(); diff --git a/sc/source/filter/excel/excrecds.cxx b/sc/source/filter/excel/excrecds.cxx index fd0ce5977ddb..9b2c67cbbb85 100644 --- a/sc/source/filter/excel/excrecds.cxx +++ b/sc/source/filter/excel/excrecds.cxx @@ -286,9 +286,9 @@ const sal_uInt8* ExcDummy_041::GetData() const Exc1904::Exc1904( ScDocument& rDoc ) { - Date* pDate = rDoc.GetFormatTable()->GetNullDate(); - bVal = pDate && (*pDate == Date( 1, 1, 1904 )); - bDateCompatibility = pDate && !( *pDate == Date( 30, 12, 1899 )); + const Date& rDate = rDoc.GetFormatTable()->GetNullDate(); + bVal = (rDate == Date( 1, 1, 1904 )); + bDateCompatibility = !(rDate == Date( 30, 12, 1899 )); } sal_uInt16 Exc1904::GetNum() const diff --git a/sc/source/filter/excel/xlroot.cxx b/sc/source/filter/excel/xlroot.cxx index 262f40b409ba..72b1450a5084 100644 --- a/sc/source/filter/excel/xlroot.cxx +++ b/sc/source/filter/excel/xlroot.cxx @@ -316,7 +316,7 @@ SvNumberFormatter& XclRoot::GetFormatter() const DateTime XclRoot::GetNullDate() const { - return *GetFormatter().GetNullDate(); + return GetFormatter().GetNullDate(); } sal_uInt16 XclRoot::GetBaseYear() const diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx index 35e9ffacfafa..c56f1c67cb80 100644 --- a/sc/source/filter/orcus/interface.cxx +++ b/sc/source/filter/orcus/interface.cxx @@ -529,7 +529,7 @@ void ScOrcusSheet::set_date_time( sal_uInt32 nSec = floor(second); sal_uInt32 nNanoSec = (second - nSec) * ::tools::Time::nanoSecPerSec; tools::Time aTime(hour, minute, nSec, nNanoSec); - Date aNullDate(*pFormatter->GetNullDate()); + Date aNullDate(pFormatter->GetNullDate()); long nDateDiff = aDate - aNullDate; double fTime = diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx index e877e38097c0..86f8a2d446cf 100644 --- a/sc/source/ui/cctrl/checklistmenu.cxx +++ b/sc/source/ui/cctrl/checklistmenu.cxx @@ -1434,7 +1434,7 @@ void ScCheckListMenuWindow::addDateMember(const OUString& rsName, double nVal, b SvNumberFormatter* pFormatter = pDoc->GetFormatTable(); // Convert the numeric date value to a date object. - Date aDate = *(pFormatter->GetNullDate()); + Date aDate = pFormatter->GetNullDate(); aDate += static_cast<long>(rtl::math::approxFloor(nVal)); sal_Int16 nYear = aDate.GetYear(); diff --git a/sc/source/ui/docshell/docsh8.cxx b/sc/source/ui/docshell/docsh8.cxx index 5a676d24d029..2cdcbbfe96c6 100644 --- a/sc/source/ui/docshell/docsh8.cxx +++ b/sc/source/ui/docshell/docsh8.cxx @@ -966,7 +966,7 @@ ErrCode ScDocShell::DBaseExport( const OUString& rFullFileName, rtl_TextEncoding } else { - Date aDate = *(pNumFmt->GetNullDate()); // tools date + Date aDate = pNumFmt->GetNullDate(); // tools date aDate += (long)fVal; //! approxfloor? xRowUpdate->updateDate( nCol+1, aDate.GetUNODate() ); } diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx index 76f6ed8a9803..f992c18061c0 100644 --- a/sc/source/ui/docshell/impex.cxx +++ b/sc/source/ui/docshell/impex.cxx @@ -1162,7 +1162,7 @@ static bool lcl_PutString( pCalendar->setValue( i18n::CalendarFieldIndex::MILLISECOND, nMilli ); if ( pCalendar->isValid() ) { - double fDiff = DateTime(*pDocFormatter->GetNullDate()) - + double fDiff = DateTime(pDocFormatter->GetNullDate()) - pCalendar->getEpochStart(); // #i14974# must use getLocalDateTime to get the same // date values as set above diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index ff173fda39fe..99e6ba02476a 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -689,7 +689,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) } if(eFillCmd==FILL_DATE) { - Date aNullDate = *pDoc->GetFormatTable()->GetNullDate(); + Date aNullDate = pDoc->GetFormatTable()->GetNullDate(); Date aStartDate = aNullDate; aStartDate+= (long)fStartVal; Date aEndDate = aNullDate; @@ -1119,7 +1119,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) { ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); OSL_ENSURE( pFact, "ScAbstractFactory create fail!" ); - Date aNullDate( *GetViewData()->GetDocument()->GetFormatTable()->GetNullDate() ); + Date aNullDate( GetViewData()->GetDocument()->GetFormatTable()->GetNullDate() ); ScopedVclPtr<AbstractScDPDateGroupDlg> pDlg( pFact->CreateScDPDateGroupDlg( pTabViewShell->GetDialogParent(), aNumInfo, nParts, aNullDate ) ); diff --git a/sc/source/ui/view/viewfun6.cxx b/sc/source/ui/view/viewfun6.cxx index 97ca1bdb4f23..9816afda8d20 100644 --- a/sc/source/ui/view/viewfun6.cxx +++ b/sc/source/ui/view/viewfun6.cxx @@ -280,7 +280,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) case css::util::NumberFormat::DATE: { Date aActDate( Date::SYSTEM ); - fVal = aActDate - *pFormatter->GetNullDate(); + fVal = aActDate - pFormatter->GetNullDate(); if (nCurNumFormatType == css::util::NumberFormat::DATE) nFormat = nCurNumFormat; } @@ -300,7 +300,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) case css::util::NumberFormat::DATETIME: { DateTime aActDateTime( DateTime::SYSTEM ); - fVal = aActDateTime - DateTime( *pFormatter->GetNullDate()); + fVal = aActDateTime - DateTime( pFormatter->GetNullDate()); if (nCurNumFormatType == css::util::NumberFormat::DATETIME) nFormat = nCurNumFormat; } @@ -353,7 +353,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) // date, which otherwise would only be possible by // applying a date format. double fDate = rtl::math::approxFloor( fCell); - if (fDate == (Date( Date::SYSTEM) - *pFormatter->GetNullDate())) + if (fDate == (Date( Date::SYSTEM) - pFormatter->GetNullDate())) bForceReqFmt = true; } break; @@ -379,7 +379,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) // zero and date is current date, else force time only. double fDate = rtl::math::approxFloor( fCell); double fTime = fCell - fDate; - if (fTime == 0.0 && fDate == (Date( Date::SYSTEM) - *pFormatter->GetNullDate())) + if (fTime == 0.0 && fDate == (Date( Date::SYSTEM) - pFormatter->GetNullDate())) nReqFmt = css::util::NumberFormat::DATETIME; else bForceReqFmt = true; @@ -400,7 +400,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) case css::util::NumberFormat::DATE: { Date aActDate( Date::SYSTEM ); - fVal = aActDate - *pFormatter->GetNullDate(); + fVal = aActDate - pFormatter->GetNullDate(); } break; case css::util::NumberFormat::TIME: @@ -423,7 +423,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) { double fTime = fCell - rtl::math::approxFloor( fCell); Date aActDate( Date::SYSTEM ); - fVal = (aActDate - *pFormatter->GetNullDate()) + fTime; + fVal = (aActDate - pFormatter->GetNullDate()) + fTime; } break; default: @@ -432,7 +432,7 @@ void ScViewFunc::InsertCurrentTime(short nReqFmt, const OUString& rUndoStr) // Converting the null date to DateTime forces the // correct operator-() to be used, resulting in a // fractional date+time instead of only date value. - fVal = aActDateTime - DateTime( *pFormatter->GetNullDate()); + fVal = aActDateTime - DateTime( pFormatter->GetNullDate()); } } break; diff --git a/svl/source/numbers/numfmuno.cxx b/svl/source/numbers/numfmuno.cxx index bef4075994e1..9c014f06ccac 100644 --- a/svl/source/numbers/numfmuno.cxx +++ b/svl/source/numbers/numfmuno.cxx @@ -927,11 +927,8 @@ uno::Any SAL_CALL SvNumberFormatSettingsObj::getPropertyValue( const OUString& a } else if (aPropertyName == PROPERTYNAME_NULLDATE) { - Date* pDate = pFormatter->GetNullDate(); - if (pDate) - { - aRet <<= pDate->GetUNODate(); - } + const Date& rDate = pFormatter->GetNullDate(); + aRet <<= rDate.GetUNODate(); } else if (aPropertyName == PROPERTYNAME_STDDEC) aRet <<= (sal_Int16)( pFormatter->GetStandardPrec() ); diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index 1acc79778e4a..2f3059ec4378 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -395,7 +395,7 @@ void SvNumberFormatter::ChangeNullDate(sal_uInt16 nDay, pStringScanner->ChangeNullDate(nDay, nMonth, nYear); } -Date* SvNumberFormatter::GetNullDate() +const Date& SvNumberFormatter::GetNullDate() { return pFormatScanner->GetNullDate(); } diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index a736c16518dc..224190550edd 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -2997,7 +2997,7 @@ bool SvNumberformat::ImpGetTimeOutput(double fNumber, case NF_KEY_AMPM: // AM/PM if ( !bCalendarSet ) { - double fDiff = DateTime(*(rScan.GetNullDate())) - GetCal().getEpochStart(); + double fDiff = DateTime(rScan.GetNullDate()) - GetCal().getEpochStart(); fDiff += fNumberOrig; GetCal().setLocalDateTime( fDiff ); bCalendarSet = true; @@ -3454,7 +3454,7 @@ bool SvNumberformat::ImpGetDateOutput(double fNumber, bool bRes = false; CalendarWrapper& rCal = GetCal(); - double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart(); + double fDiff = DateTime(rScan.GetNullDate()) - rCal.getEpochStart(); fNumber += fDiff; rCal.setLocalDateTime( fNumber ); int nUseMonthCase = 0; // Not decided yet @@ -3661,7 +3661,7 @@ bool SvNumberformat::ImpGetDateTimeOutput(double fNumber, bool bRes = false; CalendarWrapper& rCal = GetCal(); - double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart(); + double fDiff = DateTime(rScan.GetNullDate()) - rCal.getEpochStart(); fNumber += fDiff; const ImpSvNumberformatInfo& rInfo = NumFor[nIx].Info(); diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx index 25014fa7e0f5..13c0362e873f 100644 --- a/svl/source/numbers/zforscan.cxx +++ b/svl/source/numbers/zforscan.cxx @@ -40,7 +40,8 @@ const sal_Unicode cNoBreakSpace = 0xA0; const sal_Unicode cNarrowNoBreakSpace = 0x202F; ImpSvNumberformatScan::ImpSvNumberformatScan( SvNumberFormatter* pFormatterP ) - : eNewLnge(LANGUAGE_DONTKNOW) + : maNullDate( 30, 12, 1899) + , eNewLnge(LANGUAGE_DONTKNOW) , eTmpLnge(LANGUAGE_DONTKNOW) , nCurrPos(-1) { @@ -77,7 +78,6 @@ ImpSvNumberformatScan::ImpSvNumberformatScan( SvNumberFormatter* pFormatterP ) StandardColor[8] = Color(COL_YELLOW); StandardColor[9] = Color(COL_WHITE); - pNullDate = new Date(30,12,1899); nStandardPrec = 2; sErrStr = "###"; @@ -86,7 +86,6 @@ ImpSvNumberformatScan::ImpSvNumberformatScan( SvNumberFormatter* pFormatterP ) ImpSvNumberformatScan::~ImpSvNumberformatScan() { - delete pNullDate; Reset(); } @@ -429,10 +428,14 @@ void ImpSvNumberformatScan::SetDependentKeywords() void ImpSvNumberformatScan::ChangeNullDate(sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear) { - if ( pNullDate ) - *pNullDate = Date(nDay, nMonth, nYear); - else - pNullDate = new Date(nDay, nMonth, nYear); + maNullDate = Date(nDay, nMonth, nYear); + if (!maNullDate.IsValidDate()) + { + maNullDate.Normalize(); + SAL_WARN("svl.numbers","ImpSvNumberformatScan::ChangeNullDate - not valid" + " d: " << nDay << " m: " << nMonth << " y: " << nYear << " normalized to" + " d: " << maNullDate.GetDay() << " m: " << maNullDate.GetMonth() << " y: " << maNullDate.GetYear()); + } } void ImpSvNumberformatScan::ChangeStandardPrec(sal_uInt16 nPrec) diff --git a/svl/source/numbers/zforscan.hxx b/svl/source/numbers/zforscan.hxx index 13d5b1a67177..5aaee72f870f 100644 --- a/svl/source/numbers/zforscan.hxx +++ b/svl/source/numbers/zforscan.hxx @@ -80,7 +80,7 @@ public: const OUString& GetBooleanString() const { return GetKeywords()[NF_KEY_BOOLEAN]; } const OUString& GetErrorString() const { return sErrStr; } - Date* GetNullDate() const { return pNullDate; } + const Date& GetNullDate() const { return maNullDate; } const OUString& GetStandardName() const { if ( bKeywordsNeedInit ) @@ -150,7 +150,7 @@ public: private: // Private section NfKeywordTable sKeyword; // Syntax keywords Color StandardColor[NF_MAX_DEFAULT_COLORS]; // Standard color array - Date* pNullDate; // 30Dec1899 + Date maNullDate; // 30Dec1899 OUString sNameStandardFormat; // "Standard" sal_uInt16 nStandardPrec; // Default Precision for Standardformat SvNumberFormatter* pFormatter; // Pointer to the FormatList diff --git a/sw/source/core/bastyp/calc.cxx b/sw/source/core/bastyp/calc.cxx index 80f10a9821f0..2fd656296bf4 100644 --- a/sw/source/core/bastyp/calc.cxx +++ b/sw/source/core/bastyp/calc.cxx @@ -220,9 +220,9 @@ static double lcl_ConvertToDateValue( SwDoc& rDoc, sal_Int32 nDate ) SvNumberFormatter* pFormatter = rDoc.GetNumberFormatter(); if( pFormatter ) { - Date* pNull = pFormatter->GetNullDate(); + const Date& rNull = pFormatter->GetNullDate(); Date aDate( nDate >> 24, (nDate& 0x00FF0000) >> 16, nDate& 0x0000FFFF ); - nRet = aDate - *pNull; + nRet = aDate - rNull; } return nRet; } diff --git a/sw/source/core/fields/dbfld.cxx b/sw/source/core/fields/dbfld.cxx index 1790ae8eabe3..0df616a710cc 100644 --- a/sw/source/core/fields/dbfld.cxx +++ b/sw/source/core/fields/dbfld.cxx @@ -275,8 +275,8 @@ bool SwDBField::FormatValue( SvNumberFormatter* pDocFormatter, OUString &aString DataType::TIMESTAMP == nColumnType ) { Date aStandard( 1, 1, 1900 ); - if( *pDocFormatter->GetNullDate() != aStandard ) - aNumber += (aStandard - *pDocFormatter->GetNullDate()); + if( pDocFormatter->GetNullDate() != aStandard ) + aNumber += (aStandard - pDocFormatter->GetNullDate()); } bValidValue = true; if( pField ) diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index 692fb7ee723d..aae7cacee181 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -1070,15 +1070,15 @@ OUString SwDocInfoField::Expand() const if( aAny >>= aDate) { SvNumberFormatter* pFormatter = pDocShell->GetDoc()->GetNumberFormatter(); - Date* pNullDate = pFormatter->GetNullDate(); - sVal = ExpandValue( lcl_DateToDouble<util::Date>( aDate, *pNullDate ), GetFormat(), GetLanguage()); + const Date& rNullDate = pFormatter->GetNullDate(); + sVal = ExpandValue( lcl_DateToDouble<util::Date>( aDate, rNullDate ), GetFormat(), GetLanguage()); } else if( aAny >>= aDateTime ) { double fDateTime = lcl_TimeToDouble<util::DateTime>( aDateTime ); SvNumberFormatter* pFormatter = pDocShell->GetDoc()->GetNumberFormatter(); - Date* pNullDate = pFormatter->GetNullDate(); - fDateTime += lcl_DateToDouble<util::DateTime>( aDateTime, *pNullDate ); + const Date& rNullDate = pFormatter->GetNullDate(); + fDateTime += lcl_DateToDouble<util::DateTime>( aDateTime, rNullDate ); sVal = ExpandValue( fDateTime, GetFormat(), GetLanguage()); } else if( aAny >>= aDuration ) diff --git a/sw/source/core/fields/flddat.cxx b/sw/source/core/fields/flddat.cxx index 56c532c66b8c..5ae5da51a9c3 100644 --- a/sw/source/core/fields/flddat.cxx +++ b/sw/source/core/fields/flddat.cxx @@ -121,9 +121,9 @@ void SwDateTimeField::SetDateTime(const DateTime& rDT) double SwDateTimeField::GetDateTime(SwDoc* pDoc, const DateTime& rDT) { SvNumberFormatter* pFormatter = pDoc->GetNumberFormatter(); - Date* pNullDate = pFormatter->GetNullDate(); + const Date& rNullDate = pFormatter->GetNullDate(); - double fResult = rDT - DateTime(*pNullDate); + double fResult = rDT - DateTime(rNullDate); return fResult; } @@ -139,11 +139,11 @@ double SwDateTimeField::GetValue() const Date SwDateTimeField::GetDate() const { SvNumberFormatter* pFormatter = GetDoc()->GetNumberFormatter(); - Date* pNullDate = pFormatter->GetNullDate(); + const Date& rNullDate = pFormatter->GetNullDate(); long nVal = static_cast<long>( GetValue() ); - Date aDate = *pNullDate + nVal; + Date aDate = rNullDate + nVal; return aDate; } diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx index bf26e0d4900b..3f0ddffcacd5 100644 --- a/sw/source/core/text/EnhancedPDFExportHelper.cxx +++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx @@ -1595,7 +1595,7 @@ void SwEnhancedPDFExportHelper::EnhancedPDFExport() const SwPostItField* pField = static_cast<SwPostItField*>(pFirst->GetField()); SvNumberFormatter* pNumFormatter = pDoc->GetNumberFormatter(); const Date aDateDiff( pField->GetDate() - - *pNumFormatter->GetNullDate() ); + pNumFormatter->GetNullDate() ); const sal_uLong nFormat = pNumFormatter->GetStandardFormat( css::util::NumberFormat::DATE, pField->GetLanguage() ); OUString sDate; diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx index 97abb559b731..207da08081b4 100644 --- a/sw/source/ui/dbui/dbinsdlg.cxx +++ b/sw/source/ui/dbui/dbinsdlg.cxx @@ -1136,8 +1136,8 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection, if(rNumFormatr.GetType(aNumFormat.GetValue()) & css::util::NumberFormat::DATE) { ::Date aStandard(1,1,1900); - if (*rNumFormatr.GetNullDate() != aStandard) - fVal += (aStandard - *rNumFormatr.GetNullDate()); + if (rNumFormatr.GetNullDate() != aStandard) + fVal += (aStandard - rNumFormatr.GetNullDate()); } aTableSet.Put( SwTableBoxValue( fVal )); } @@ -1370,8 +1370,8 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection, if(rNumFormatr.GetType(pDBCol->nFormat) & css::util::NumberFormat::DATE) { ::Date aStandard(1,1,1900); - if (*rNumFormatr.GetNullDate() != aStandard) - nValue += (aStandard - *rNumFormatr.GetNullDate()); + if (rNumFormatr.GetNullDate() != aStandard) + nValue += (aStandard - rNumFormatr.GetNullDate()); } rNumFormatr.GetOutputString( nValue, pDBCol->nFormat, diff --git a/uui/source/iahndl-ssl.cxx b/uui/source/iahndl-ssl.cxx index 1aee36d03639..2937b0ee3d81 100644 --- a/uui/source/iahndl-ssl.cxx +++ b/uui/source/iahndl-ssl.cxx @@ -120,11 +120,11 @@ getLocalizedDatTimeStr( SvNumberFormatter *pNumberFormatter = new SvNumberFormatter( xContext, eUILang ); OUString aTmpStr; Color* pColor = nullptr; - Date* pNullDate = pNumberFormatter->GetNullDate(); + const Date& rNullDate = pNumberFormatter->GetNullDate(); sal_uInt32 nFormat = pNumberFormatter->GetStandardFormat( css::util::NumberFormat::DATE, eUILang ); - pNumberFormatter->GetOutputString( aDate - *pNullDate, nFormat, aTmpStr, &pColor ); + pNumberFormatter->GetOutputString( aDate - rNullDate, nFormat, aTmpStr, &pColor ); aDateTimeStr = aTmpStr + " "; nFormat = pNumberFormatter->GetStandardFormat( css::util::NumberFormat::TIME, eUILang ); |