[Libreoffice-commits] core.git: 3 commits - include/tools tools/qa tools/source
Eike Rathke
erack at redhat.com
Fri Apr 28 15:22:34 UTC 2017
include/tools/date.hxx | 8 ++++----
tools/qa/cppunit/test_date.cxx | 17 +++++++++++++++++
tools/source/datetime/tdate.cxx | 2 +-
3 files changed, 22 insertions(+), 5 deletions(-)
New commits:
commit 0e65e82238c8ded807d022234029163dc5b67f0a
Author: Eike Rathke <erack at redhat.com>
Date: Fri Apr 28 17:21:30 2017 +0200
Adapt documentation to reality
Change-Id: Ic76cdff3c95e68e91700ca7143e8aa8c908ed56e
diff --git a/include/tools/date.hxx b/include/tools/date.hxx
index bab1efd833f8..600c4f90a562 100644
--- a/include/tools/date.hxx
+++ b/include/tools/date.hxx
@@ -164,8 +164,8 @@ public:
/** If the represented date is valid (1<=month<=12, 1<=day<=(28,29,30,31)
depending on month/year) AND is of the Gregorian calendar (1582-10-15
- <= date) (AND implicitly date <= 9999-12-31 due to internal
- representation) */
+ <= date)
+ */
bool IsValidAndGregorian() const;
/** If the represented date is valid (1<=month<=12, 1<=day<=(28,29,30,31)
@@ -175,8 +175,8 @@ public:
/** Normalize date, invalid day or month values are adapted such that they
carry over to the next month or/and year, for example 1999-02-32
becomes 1999-03-04, 1999-13-01 becomes 2000-01-01, 1999-13-42 becomes
- 2000-02-11. Truncates at 9999-12-31, 0000-00-x will yield the
- normalized value of 0000-01-max(1,(x-31))
+ 2000-02-11. Truncates at -32768-01-01 or 32767-12-31, 0001-00-x will
+ yield the normalized value of -0001-12-x
This may be necessary after Date ctors or if the SetDate(), SetDay(),
SetMonth(), SetYear() methods set individual non-matching values.
commit 8bdbfdb97d94745454b2ad87d341bcb32d10461c
Author: Eike Rathke <erack at redhat.com>
Date: Fri Apr 28 17:14:32 2017 +0200
Add unit tests for Date::Normalize()
Change-Id: I4edb04748b1f407eb6ce17cd24ff022cef6e1f67
diff --git a/tools/qa/cppunit/test_date.cxx b/tools/qa/cppunit/test_date.cxx
index 0ee30089b7b5..c2c31e10b51c 100644
--- a/tools/qa/cppunit/test_date.cxx
+++ b/tools/qa/cppunit/test_date.cxx
@@ -56,6 +56,23 @@ void DateTest::testDate()
CPPUNIT_ASSERT_EQUAL( aMin.GetDate(), (aDate += (kMinDays-10)).GetDate());
aDate = aBCE;
CPPUNIT_ASSERT_EQUAL( aMax.GetDate(), (aDate += (kMaxDays+10)).GetDate());
+ aDate = aMax;
+ aDate.SetDay(32);
+ aDate.Normalize();
+ CPPUNIT_ASSERT_EQUAL( aMax.GetDate(), aDate.GetDate());
+
+ // 0001-00-x normalized to -0001-12-x
+ aDate.SetYear(1);
+ aDate.SetMonth(0);
+ aDate.SetDay(22);
+ aDate.Normalize();
+ CPPUNIT_ASSERT_EQUAL( Date(22,12,-1).GetDate(), aDate.GetDate());
+ // 1999-02-32 normalized to 1999-03-04
+ aDate.SetYear(1999);
+ aDate.SetMonth(2);
+ aDate.SetDay(32);
+ aDate.Normalize();
+ CPPUNIT_ASSERT_EQUAL( Date(4,3,1999).GetDate(), aDate.GetDate());
// Year -1 is a leap year.
aDate = Date(28,2,-1);
commit 9054648bab5d4d89e7e3654847102d62ab9e77a1
Author: Eike Rathke <erack at redhat.com>
Date: Fri Apr 28 17:03:52 2017 +0200
Month 100 was always wrong
Though only in case localtime() couldn't be obtained, which is about ~never.
Fallout from
commit a3de32acc06cfcf9bb343a29c4b9854c92645f70
Date: Wed Oct 28 11:23:36 2015 +0100
Rename (private) Date::init and reuse it
Change-Id: Idbbac69f3d90e7556cd83bbf442ef8ccaecec86e
diff --git a/tools/source/datetime/tdate.cxx b/tools/source/datetime/tdate.cxx
index 05a1e5a1d370..46e5ad62469e 100644
--- a/tools/source/datetime/tdate.cxx
+++ b/tools/source/datetime/tdate.cxx
@@ -228,7 +228,7 @@ Date::Date( DateInitSystem )
static_cast<sal_uInt16>(aTime.tm_year+1900) );
}
else
- setDateFromDMY( 1, 100, 1900 );
+ setDateFromDMY( 1, 1, 1900 );
#endif
}
More information about the Libreoffice-commits
mailing list