date_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package excelize
  2. import (
  3. "testing"
  4. "time"
  5. )
  6. type dateTest struct {
  7. ExcelValue float64
  8. GoValue time.Time
  9. }
  10. func TestTimeToExcelTime(t *testing.T) {
  11. trueExpectedInputList := []dateTest {
  12. {0.0, time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC)},
  13. {25569.0, time.Unix(0, 0)},
  14. {43269.0, time.Date(2018, 6, 18, 0, 0, 0, 0, time.UTC)},
  15. {401769.0, time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)},
  16. }
  17. for _, test := range trueExpectedInputList {
  18. if test.ExcelValue != timeToExcelTime(test.GoValue) {
  19. t.Fatalf("Expected %v from %v = true, got %v\n", test.ExcelValue, test.GoValue, timeToExcelTime(test.GoValue))
  20. }
  21. }
  22. }
  23. func TestTimeFromExcelTime(t *testing.T) {
  24. trueExpectedInputList := []dateTest {
  25. {0.0, time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC)},
  26. {60.0, time.Date(1900, 2, 28, 0, 0, 0, 0, time.UTC)},
  27. {61.0, time.Date(1900, 3, 1, 0, 0, 0, 0, time.UTC)},
  28. {41275.0, time.Date(2013, 1, 1, 0, 0, 0, 0, time.UTC)},
  29. {401769.0, time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)},
  30. }
  31. for _, test := range trueExpectedInputList {
  32. if test.GoValue != timeFromExcelTime(test.ExcelValue, false) {
  33. t.Fatalf("Expected %v from %v = true, got %v\n", test.GoValue, test.ExcelValue, timeFromExcelTime(test.ExcelValue, false))
  34. }
  35. }
  36. }