date_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package excelize
  2. import (
  3. "fmt"
  4. "testing"
  5. "time"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. type dateTest struct {
  9. ExcelValue float64
  10. GoValue time.Time
  11. }
  12. func TestTimeToExcelTime(t *testing.T) {
  13. trueExpectedInputList := []dateTest{
  14. {0.0, time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC)},
  15. {25569.0, time.Unix(0, 0)},
  16. {43269.0, time.Date(2018, 6, 18, 0, 0, 0, 0, time.UTC)},
  17. {401769.0, time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)},
  18. }
  19. for i, test := range trueExpectedInputList {
  20. t.Run(fmt.Sprintf("TestData%d", i+1), func(t *testing.T) {
  21. assert.Equal(t, test.ExcelValue, timeToExcelTime(test.GoValue))
  22. })
  23. }
  24. }
  25. func TestTimeFromExcelTime(t *testing.T) {
  26. trueExpectedInputList := []dateTest{
  27. {0.0, time.Date(1899, 12, 30, 0, 0, 0, 0, time.UTC)},
  28. {60.0, time.Date(1900, 2, 28, 0, 0, 0, 0, time.UTC)},
  29. {61.0, time.Date(1900, 3, 1, 0, 0, 0, 0, time.UTC)},
  30. {41275.0, time.Date(2013, 1, 1, 0, 0, 0, 0, time.UTC)},
  31. {401769.0, time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)},
  32. }
  33. for i, test := range trueExpectedInputList {
  34. t.Run(fmt.Sprintf("TestData%d", i+1), func(t *testing.T) {
  35. assert.Equal(t, test.GoValue, timeFromExcelTime(test.ExcelValue, false))
  36. })
  37. }
  38. }