diff options
author | Eike Rathke <erack@redhat.com> | 2016-07-08 17:08:47 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2016-07-08 20:41:02 +0000 |
commit | 6d4f2dcc7cbba771e9d9b00de50368db4a88ef1b (patch) | |
tree | 0301896941b955ffa79ef3e96b874ebdad78662c /svl/source/numbers | |
parent | 06287b9c348281612854d67c4eb2e7a38dc722ca (diff) |
Resolves: tdf#100452 class Date full (BCE,CE) proleptic Gregorian calendar
... implementing signed years with year 0 gap.
Date(31,12,-1) last day BCE
Date(1,1,1) first day CE
New class Date member functions:
* AddYears(sal_Int16) to be used instead of
aDate.SetYear(aDate.GetYear()+sal_Int16) to handle year 0 gap.
* convenience GetNextYear() to be used insted of GetYear()+1
* convenience GetPrevYear() to be used insted of GetYear()-1
* AddMonths(sal_Int32)
* operator=(const css::util::Date&)
New class DateTime member functions:
* operator=(const css::util::DateTime&)
Made some conversion ctors explicit, specifically Date(sal_Int32)
Adapted hopefully all places that used a sal_uInt16 year to use
sal_Int16 where appropriate.
Eliminated some quirks in date handling found on the fly.
Added era handling to i18npool icu calendar setting interface, which
missing was responsible for 0001-01-01 entered in Calc being set as
-0001-01-01, hence subtracting one day resulted in -0002-12-31.
Change-Id: I77b39fba9599ebd5067d7864f6c9ebe01f6f578f
Reviewed-on: https://gerrit.libreoffice.org/27049
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'svl/source/numbers')
-rw-r--r-- | svl/source/numbers/zforfind.cxx | 2 | ||||
-rw-r--r-- | svl/source/numbers/zforfind.hxx | 2 | ||||
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 2 | ||||
-rw-r--r-- | svl/source/numbers/zforscan.cxx | 2 | ||||
-rw-r--r-- | svl/source/numbers/zforscan.hxx | 2 |
5 files changed, 5 insertions, 5 deletions
diff --git a/svl/source/numbers/zforfind.cxx b/svl/source/numbers/zforfind.cxx index 6154e2a9bb78..7fc7f8c079fd 100644 --- a/svl/source/numbers/zforfind.cxx +++ b/svl/source/numbers/zforfind.cxx @@ -3406,7 +3406,7 @@ void ImpSvNumberInputScan::InvalidateDateAcceptancePatterns() void ImpSvNumberInputScan::ChangeNullDate( const sal_uInt16 Day, const sal_uInt16 Month, - const sal_uInt16 Year ) + const sal_Int16 Year ) { if ( pNullDate ) { diff --git a/svl/source/numbers/zforfind.hxx b/svl/source/numbers/zforfind.hxx index 7cabce77cf2a..5f62e281f10c 100644 --- a/svl/source/numbers/zforfind.hxx +++ b/svl/source/numbers/zforfind.hxx @@ -40,7 +40,7 @@ public: /// set reference date for offset calculation void ChangeNullDate( const sal_uInt16 nDay, const sal_uInt16 nMonth, - const sal_uInt16 nYear ); + const sal_Int16 nYear ); /// convert input string to number bool IsNumberFormat( const OUString& rString, /// input string diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index bd67e25e9c09..5ca78ed0b370 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -398,7 +398,7 @@ Color* SvNumberFormatter::GetUserDefColor(sal_uInt16 nIndex) void SvNumberFormatter::ChangeNullDate(sal_uInt16 nDay, sal_uInt16 nMonth, - sal_uInt16 nYear) + sal_Int16 nYear) { pFormatScanner->ChangeNullDate(nDay, nMonth, nYear); pStringScanner->ChangeNullDate(nDay, nMonth, nYear); diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx index b208364d5e95..8025ae6fd1e0 100644 --- a/svl/source/numbers/zforscan.cxx +++ b/svl/source/numbers/zforscan.cxx @@ -446,7 +446,7 @@ void ImpSvNumberformatScan::SetDependentKeywords() InitCompatCur(); } -void ImpSvNumberformatScan::ChangeNullDate(sal_uInt16 nDay, sal_uInt16 nMonth, sal_uInt16 nYear) +void ImpSvNumberformatScan::ChangeNullDate(sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear) { if ( pNullDate ) *pNullDate = Date(nDay, nMonth, nYear); diff --git a/svl/source/numbers/zforscan.hxx b/svl/source/numbers/zforscan.hxx index 82535fd1e84a..bf92049bae1f 100644 --- a/svl/source/numbers/zforscan.hxx +++ b/svl/source/numbers/zforscan.hxx @@ -44,7 +44,7 @@ public: ~ImpSvNumberformatScan(); void ChangeIntl(); // Replaces Keywords - void ChangeNullDate(sal_uInt16 nDay, sal_uInt16 nMonth, sal_uInt16 nYear); // Replaces reference date + void ChangeNullDate(sal_uInt16 nDay, sal_uInt16 nMonth, sal_Int16 nYear); // Replaces reference date void ChangeStandardPrec(sal_uInt16 nPrec); // Replaces standard precision sal_Int32 ScanFormat( OUString& rString ); // Call scan analysis |