kameeoze/jruby-poi — pull request #12 by timcharper (2012-12-14 08:50:10+00:00)
Title:  Bugfix: Properly handle 1904 windowed dates.

Excel files created on the mac use 1904 date windowing. This bug caused
dates in these files to be incorrectly interpretted as 4 years earlier.

Since POI doesn't seem to publicly expose whether or not a workbook is
usnig 1904 date windowing, the solution was to use the built-in method
get_date_cell_value.

I had a hard time understanding the motivation for the complexity of the
logic that was in cell.rb for retrieving value, so I refactored it to be
quite a bit simpler. It passes the specs and I believe it to be
functionally equivalent, but it's possible there may be a few untested
edge cases that may have changed behavior.

For information on getting the proper date on 1904 date windowed files,
see:

http://apache-poi.1045710.n5.nabble.com/Detecting-1904-date-windowing-in-a-given-file-td3245881.html

(original: http://mail-archives.apache.org/mod_mbox/poi-user/201011.mbox/%3c910F03AE-4AFC-49F6-8220-3F4AB5B6002D@jmlafferty.com%3e)

All of the specs pass, and new specs have been added to ensure 1904 windowed dates are correctly returned as entered and as computed by a formula.