Avoid temporary Date and normalization
Rather than possibly calculating Date=((Date=(Date+int))+int) with a
normalization involved for each operator+() force Date=(Date+(int+int))
Change-Id: I6c4b30749d138c0b041ffc9e37796b6f64b6d461
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 9cdb73ea..3f83ea2 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1649,8 +1649,8 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
const DayOfWeek eDay = rActDate.GetDayOfWeek();
if( eDay != SUNDAY )
{
Date aBegin(rActDate - 8 - static_cast<sal_Int32>(eDay));
Date aEnd(rActDate - 2 - static_cast<sal_Int32>(eDay));
Date aBegin(rActDate - (8 + static_cast<sal_Int32>(eDay)));
Date aEnd(rActDate - (2 + static_cast<sal_Int32>(eDay)));
return aCellDate.IsBetween( aBegin, aEnd );
}
else
@@ -1666,8 +1666,8 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
const DayOfWeek eDay = rActDate.GetDayOfWeek();
if( eDay != SUNDAY )
{
Date aBegin(rActDate - 1 - static_cast<sal_Int32>(eDay));
Date aEnd(rActDate + 5 - static_cast<sal_Int32>(eDay));
Date aBegin(rActDate - (1 + static_cast<sal_Int32>(eDay)));
Date aEnd(rActDate + (5 + static_cast<sal_Int32>(eDay)));
return aCellDate.IsBetween( aBegin, aEnd );
}
else
@@ -1682,8 +1682,8 @@ bool ScCondDateFormatEntry::IsValid( const ScAddress& rPos ) const
const DayOfWeek eDay = rActDate.GetDayOfWeek();
if( eDay != SUNDAY )
{
return aCellDate.IsBetween( rActDate + 6 - static_cast<sal_Int32>(eDay),
rActDate + 12 - static_cast<sal_Int32>(eDay) );
return aCellDate.IsBetween( rActDate + (6 - static_cast<sal_Int32>(eDay)),
rActDate + (12 - static_cast<sal_Int32>(eDay)) );
}
else
{