summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <er@openoffice.org>2002-09-24 13:16:50 +0000
committerEike Rathke <er@openoffice.org>2002-09-24 13:16:50 +0000
commit7e3fb6546cdeb19d63dc35b5368e133732cb322b (patch)
tree161e1393481863ab592fd9d68cf44ffcea98856c
parent9081dab9fe9c3ca583ca6fbf3a6f946a154f417c (diff)
#102692# use [gs]etLocalDateTime()
-rw-r--r--svtools/source/numbers/zforfind.cxx53
-rw-r--r--svtools/source/numbers/zformat.cxx10
2 files changed, 44 insertions, 19 deletions
diff --git a/svtools/source/numbers/zforfind.cxx b/svtools/source/numbers/zforfind.cxx
index 75c911a5fd97..9e7852af05e2 100644
--- a/svtools/source/numbers/zforfind.cxx
+++ b/svtools/source/numbers/zforfind.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: zforfind.cxx,v $
*
- * $Revision: 1.26 $
+ * $Revision: 1.27 $
*
- * last change: $Author: er $ $Date: 2002-09-09 12:56:10 $
+ * last change: $Author: er $ $Date: 2002-09-24 14:16:50 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -106,7 +106,7 @@
#ifdef PRODUCT
#define NF_TEST_CALENDAR 0
#else
-#define NF_TEST_CALENDAR 0
+#define NF_TEST_CALENDAR 1
#endif
#if NF_TEST_CALENDAR
#include <comphelper/processfactory.hxx>
@@ -1297,7 +1297,7 @@ input for the following reasons:
if ( res && pCal->isValid() )
{
double fDiff = DateTime(*pNullDate) - pCal->getEpochStart();
- fDays = floor( pCal->getDateTime() );
+ fDays = floor( pCal->getLocalDateTime() );
fDays -= fDiff;
nTryOrder = nFormatOrder; // break for
}
@@ -1323,7 +1323,9 @@ input for the following reasons:
};
lang::Locale aLocale;
sal_Bool bValid;
- sal_Int16 nDay, nMonth, nYear, nDaySet, nMonthSet, nYearSet;
+ sal_Int16 nDay, nMonth, nYear, nHour, nMinute, nSecond;
+ sal_Int16 nDaySet, nMonthSet, nYearSet, nHourSet, nMinuteSet, nSecondSet;
+ sal_Int16 nZO, nDST1, nDST2, nDST;
uno::Reference< lang::XMultiServiceFactory > xSMgr =
::comphelper::getProcessServiceFactory();
uno::Reference< ::drafts::com::sun::star::i18n::XExtendedCalendar > xCal(
@@ -1337,18 +1339,41 @@ input for the following reasons:
aLocale.Country = ::rtl::OUString::createFromAscii( p->cou );
xCal->loadCalendar( ::rtl::OUString::createFromAscii( p->cal ),
aLocale );
- xCal->setDateTime( 0.0 ); // 1-Jan-1970
- nDaySet = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
- nMonthSet = xCal->getValue( i18n::CalendarFieldIndex::MONTH );
- nYearSet = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
+ double nDateTime = 0.0; // 1-Jan-1970 00:00:00
+ nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET );
+ nDST1 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
+ nDateTime -= (double)(nZO + nDST1) / 60.0 / 24.0;
+ xCal->setDateTime( nDateTime );
+ nDST2 = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
+ if ( nDST1 != nDST2 )
+ {
+ nDateTime = 0.0 - (double)(nZO + nDST2) / 60.0 / 24.0;
+ xCal->setDateTime( nDateTime );
+ }
+ nDaySet = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
+ nMonthSet = xCal->getValue( i18n::CalendarFieldIndex::MONTH );
+ nYearSet = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
+ nHourSet = xCal->getValue( i18n::CalendarFieldIndex::HOUR );
+ nMinuteSet = xCal->getValue( i18n::CalendarFieldIndex::MINUTE );
+ nSecondSet = xCal->getValue( i18n::CalendarFieldIndex::SECOND );
+ nZO = xCal->getValue( i18n::CalendarFieldIndex::ZONE_OFFSET );
+ nDST = xCal->getValue( i18n::CalendarFieldIndex::DST_OFFSET );
xCal->setValue( i18n::CalendarFieldIndex::DAY_OF_MONTH, nDaySet );
xCal->setValue( i18n::CalendarFieldIndex::MONTH, nMonthSet );
xCal->setValue( i18n::CalendarFieldIndex::YEAR, nYearSet );
- bValid = xCal->isValid();
- nDay = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
- nMonth = xCal->getValue( i18n::CalendarFieldIndex::MONTH );
- nYear = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
- bValid = bValid && nDay == nDaySet && nMonth == nMonthSet && nYear == nYearSet;
+ xCal->setValue( i18n::CalendarFieldIndex::HOUR, nHourSet );
+ xCal->setValue( i18n::CalendarFieldIndex::MINUTE, nMinuteSet );
+ xCal->setValue( i18n::CalendarFieldIndex::SECOND, nSecondSet );
+ bValid = xCal->isValid();
+ nDay = xCal->getValue( i18n::CalendarFieldIndex::DAY_OF_MONTH );
+ nMonth = xCal->getValue( i18n::CalendarFieldIndex::MONTH );
+ nYear = xCal->getValue( i18n::CalendarFieldIndex::YEAR );
+ nHour = xCal->getValue( i18n::CalendarFieldIndex::HOUR );
+ nMinute = xCal->getValue( i18n::CalendarFieldIndex::MINUTE );
+ nSecond = xCal->getValue( i18n::CalendarFieldIndex::SECOND );
+ bValid = bValid && nDay == nDaySet && nMonth == nMonthSet && nYear ==
+ nYearSet && nHour == nHourSet && nMinute == nMinuteSet && nSecond
+ == nSecondSet;
}
}
#endif // NF_TEST_CALENDAR
diff --git a/svtools/source/numbers/zformat.cxx b/svtools/source/numbers/zformat.cxx
index fedd00689992..01ebe27c88ec 100644
--- a/svtools/source/numbers/zformat.cxx
+++ b/svtools/source/numbers/zformat.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: zformat.cxx,v $
*
- * $Revision: 1.44 $
+ * $Revision: 1.45 $
*
- * last change: $Author: er $ $Date: 2002-09-17 16:38:59 $
+ * last change: $Author: er $ $Date: 2002-09-24 14:16:50 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -2552,7 +2552,7 @@ BOOL SvNumberformat::ImpGetTimeOutput(double fNumber,
{
double fDiff = DateTime(*(rScan.GetNullDate())) - GetCal().getEpochStart();
fDiff += fNumberOrig;
- GetCal().setDateTime( fDiff );
+ GetCal().setLocalDateTime( fDiff );
bCalendarSet = TRUE;
}
if (cAmPm == 'a')
@@ -2756,7 +2756,7 @@ BOOL SvNumberformat::ImpGetDateOutput(double fNumber,
CalendarWrapper& rCal = GetCal();
double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart();
fNumber += fDiff;
- rCal.setDateTime( fNumber );
+ rCal.setLocalDateTime( fNumber );
String aOrgCalendar; // empty => not changed yet
double fOrgDateTime;
BOOL bOtherCalendar = ImpIsOtherCalendar( NumFor[nIx] );
@@ -2938,7 +2938,7 @@ BOOL SvNumberformat::ImpGetDateTimeOutput(double fNumber,
CalendarWrapper& rCal = GetCal();
double fDiff = DateTime(*(rScan.GetNullDate())) - rCal.getEpochStart();
fNumber += fDiff;
- rCal.setDateTime( fNumber );
+ rCal.setLocalDateTime( fNumber );
String aOrgCalendar; // empty => not changed yet
double fOrgDateTime;
BOOL bOtherCalendar = ImpIsOtherCalendar( NumFor[nIx] );