class Date with signed years, full (BCE,CE) proleptic Gregorian calendar

Eike Rathke erack at redhat.com
Fri Jul 8 21:06:24 UTC 2016


Hi,

https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=6d4f2dcc7cbba771e9d9b00de50368db4a88ef1b

implements signed years with tools' class Date providing a full BCE,CE
proleptic Gregorian calendar.

Hopefully you shouldn't notice anything bad and I caught all relevant
places with that change. However, please be aware that

* year is now a signed sal_Int16 instead of unsigned sal_uInt16, the
  full int16 range can be used
* year 0 does not exist and the gap is skipped in calculations, last day
  BCE is -0001-12-31, first day CE is 0001-01-01
* do not use aDate.SetYear(aDate.GetYear()+number), use
  aDate.AddYears(number) instead
* years 1,5,9,... BCE (-1,-5,-9,...) are leap years

Further details in the commit message and include/tools/date.hxx

Happy dating :P

  Eike

-- 
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
GPG key "ID" 0x65632D3A - 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Better use 64-bit 0x6A6CD5B765632D3A here is why: https://evil32.com/
Care about Free Software, support the FSFE https://fsfe.org/support/?erack
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20160708/81bc9ba4/attachment.sig>


More information about the LibreOffice mailing list