package xtime import ( "github.com/golang-module/carbon/v2" "github.com/stretchr/testify/assert" "testing" "time" ) func TestSetTimeOffset(t *testing.T) { loc, err := time.LoadLocation("Asia/Shanghai") assert.NoError(t, err) loc2, err := time.LoadLocation("America/New_York") assert.NoError(t, err) a := time.Now().In(loc) b := time.Now().In(loc2) t.Log(a.String()) t.Log(b.String()) Now() t.Log(a.Sub(b)) } func TestFormatDayNum(t *testing.T) { t1 := Parse("2023-01-01 00:00:00", 0) assert.Equal(t, FormatDateNum(t1), 20221231) t2 := Parse("2023-01-01 04:00:00", 0) assert.Equal(t, FormatDateNum(t2), 20230101) } func TestNow(t *testing.T) { now := Now() sc := carbon.Now(carbon.SaoPaulo) b := func(args ...int) []int { return args } assert.Equal(t, b(now.Time()), b(sc.Time())) } func TestIsToday(t *testing.T) { now := time.Now() assert.True(t, IsToday(now)) assert.False(t, IsToday(now.Add(24*time.Hour))) assert.False(t, IsToday(now.Add(-24*time.Hour))) } func TestIsTodayTimestamp(t *testing.T) { now := Now() st := now.Timestamp() assert.True(t, IsTodayTimestamp(st)) //assert.False(t, IsTodayTimestamp(now.Yesterday().Timestamp())) assert.False(t, IsTodayTimestamp(now.AddDay().Timestamp())) } func TestIsAfterNow(t *testing.T) { t.Run("std Time", func(t *testing.T) { now := time.Now() after := now.Add(time.Hour) assert.True(t, IsAfterNow(after)) now = time.Now() before := now.Add(-time.Hour) assert.False(t, IsAfterNow(before)) }) t.Run("carbon", func(t *testing.T) { now := Now() after := now.AddHour() assert.True(t, IsAfterNow(after)) now = Now() before := now.SubHour() assert.False(t, IsAfterNow(before)) }) t.Run("timestamp", func(t *testing.T) { now := time.Now().Unix() after := now + 3600 assert.True(t, IsAfterNow(after)) now = time.Now().Unix() before := now - 3600 assert.False(t, IsAfterNow(before)) }) } func TestIsBeforeNow(t *testing.T) { t.Run("std Time", func(t *testing.T) { now := time.Now() before := now.Add(-time.Hour) assert.True(t, IsBeforeNow(before)) now = time.Now() after := now.Add(time.Hour) assert.False(t, IsBeforeNow(after)) }) t.Run("carbon", func(t *testing.T) { now := Now() before := now.SubHour() assert.True(t, IsBeforeNow(before)) now = Now() after := now.AddHour() assert.False(t, IsBeforeNow(after)) }) t.Run("timestamp", func(t *testing.T) { now := time.Now().Unix() before := now - 3600 assert.True(t, IsBeforeNow(before)) now = time.Now().Unix() after := now + 3600 assert.False(t, IsBeforeNow(after)) }) } func TestIsInDuration(t *testing.T) { t.Run("std Time", func(t *testing.T) { now := time.Now() start := now.Add(-time.Hour) end := now.Add(time.Hour) assert.True(t, IsInDuration(now, start, end)) assert.False(t, IsInDuration(now.Add(10*time.Hour), start, end)) assert.False(t, IsInDuration(now.Add(-10*time.Hour), start, end)) }) t.Run("carbon", func(t *testing.T) { now := Now() start := now.SubHour() end := now.AddHour() assert.True(t, IsInDuration(now, start, end)) assert.False(t, IsInDuration(now.AddHours(10), start, end)) assert.False(t, IsInDuration(now.SubHours(10), start, end)) }) t.Run("timestamp", func(t *testing.T) { now := time.Now().Unix() start := now - 3600 end := now + 3600 assert.True(t, IsInDuration(now, start, end)) assert.False(t, IsInDuration(now+3600*10, start, end)) assert.False(t, IsInDuration(now-3600*10, start, end)) }) } func TestClean(t *testing.T) { _ = t _ = TimestampToTime[int] _ = FormatDuration[int64] }