Quellcode durchsuchen

Regarding issue 38. Adjust date offsets when running on Windows. I'm not sure
why this variance occurs, but it seems it does. This fix is speculative, as I
don't have Windows to check on.

Geoffrey J. Teale vor 11 Jahren
Ursprung
Commit
4e97c59921
1 geänderte Dateien mit 7 neuen und 2 gelöschten Zeilen
  1. 7 2
      date.go

+ 7 - 2
date.go

@@ -2,6 +2,7 @@ package xlsx
 
 import (
 	"math"
+	"runtime"
 	"time"
 )
 
@@ -87,10 +88,14 @@ func TimeFromExcelTime(excelTime float64, date1904 bool) time.Time {
 	}
 	var floatPart float64 = excelTime - float64(intPart)
 	var dayNanoSeconds float64 = 24 * 60 * 60 * 1000 * 1000 * 1000
+	var baselineDays int = 1
+	if runtime.GOOS == "windows" {
+		baselineDays = 0
+	}
 	if date1904 {
-		date = time.Date(1904, 1, 1, 1, 0, 0, 0, time.Local)
+		date = time.Date(1904, 1, 1, baselineDays, 0, 0, 0, time.Local)
 	} else {
-		date = time.Date(1899, 12, 30, 1, 0, 0, 0, time.Local)
+		date = time.Date(1899, 12, 30, baselineDays, 0, 0, 0, time.Local)
 	}
 	durationDays := time.Duration(intPart) * time.Hour * 24
 	durationPart := time.Duration(dayNanoSeconds * floatPart)