diff options
author | xuri <xuri.me@gmail.com> | 2018-06-27 14:03:06 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-27 14:03:06 +0800 |
commit | 13cf7a3b0316f7ca0f7554d22b0f06b53b41a168 (patch) | |
tree | 86fcc43440e0225b3c7ea306d1e35dfeed478151 /date.go | |
parent | 3a91b28ddbca53d09b46612fa4c2c29a65d42e41 (diff) | |
parent | 4855a43bc6a4724c5518634ffec3967d03c45663 (diff) |
Merge pull request #243 from liepumartins/patch-2
Restore date 32bit compatibility
Diffstat (limited to 'date.go')
-rw-r--r-- | date.go | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -17,12 +17,13 @@ func timeToUTCTime(t time.Time) time.Time { func timeToExcelTime(t time.Time) float64 { // TODO in future this should probably also handle date1904 and like TimeFromExcelTime var excelTime float64 + var deltaDays int64 excelTime = 0 + deltaDays = 290 * 364 // check if UnixNano would be out of int64 range - for t.Unix() > 9223372036 { + for t.Unix() > deltaDays*24*60*60 { // reduce by aprox. 290 years, which is max for int64 nanoseconds - deltaDays := 290 * 364 - delta := time.Duration(deltaDays * 8.64e13) + delta := time.Duration(deltaDays) * 24 * time.Hour excelTime = excelTime + float64(deltaDays) t = t.Add(-delta) } @@ -103,7 +104,7 @@ func doTheFliegelAndVanFlandernAlgorithm(jd int) (day, month, year int) { // timeFromExcelTime provides function to convert an excelTime representation // (stored as a floating point number) to a time.Time. func timeFromExcelTime(excelTime float64, date1904 bool) time.Time { - const MDD int64 = 106750 // Max time.Duration Days, aprox. 290 years + const MDD int64 = 106750 // Max time.Duration Days, aprox. 290 years var date time.Time var intPart = int64(excelTime) // Excel uses Julian dates prior to March 1st 1900, and Gregorian @@ -127,7 +128,7 @@ func timeFromExcelTime(excelTime float64, date1904 bool) time.Time { } else { date = time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC) } - + // Duration is limited to aprox. 290 years for intPart > MDD { durationDays := time.Duration(MDD) * time.Hour * 24 |