summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-07-08 17:08:47 +0200
committerEike Rathke <erack@redhat.com>2016-07-08 20:41:02 +0000
commit6d4f2dcc7cbba771e9d9b00de50368db4a88ef1b (patch)
tree0301896941b955ffa79ef3e96b874ebdad78662c /editeng
parent06287b9c348281612854d67c4eb2e7a38dc722ca (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 'editeng')
-rw-r--r--editeng/source/items/flditem.cxx4
-rw-r--r--editeng/source/uno/unofield.cxx2
2 files changed, 3 insertions, 3 deletions
diff --git a/editeng/source/items/flditem.cxx b/editeng/source/items/flditem.cxx
index 4f2c03e4b23e..11309d4a0521 100644
--- a/editeng/source/items/flditem.cxx
+++ b/editeng/source/items/flditem.cxx
@@ -396,7 +396,7 @@ void SvxDateField::Load( SvPersistStream & rStm )
{
sal_uInt16 nType, nFormat;
- rStm.ReadUInt32( nFixDate );
+ rStm.ReadInt32( nFixDate );
rStm.ReadUInt16( nType );
rStm.ReadUInt16( nFormat );
@@ -407,7 +407,7 @@ void SvxDateField::Load( SvPersistStream & rStm )
void SvxDateField::Save( SvPersistStream & rStm )
{
- rStm.WriteUInt32( nFixDate );
+ rStm.WriteInt32( nFixDate );
rStm.WriteUInt16( eType );
rStm.WriteUInt16( eFormat );
}
diff --git a/editeng/source/uno/unofield.cxx b/editeng/source/uno/unofield.cxx
index 6a26bcddf741..5a0dddd48186 100644
--- a/editeng/source/uno/unofield.cxx
+++ b/editeng/source/uno/unofield.cxx
@@ -176,7 +176,7 @@ static SvxFileFormat setFileNameDisplayFormat( sal_Int16 nFormat )
}
}
-static util::DateTime getDate( sal_uLong nDate )
+static util::DateTime getDate( sal_Int32 nDate )
{
util::DateTime aDate;
memset( &aDate, 0, sizeof( util::DateTime ) );