mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package utils_test
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/TeaOSLab/EdgeAPI/internal/utils"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
func TestRangeDays(t *testing.T) {
 | 
						|
	days, err := utils.RangeDays("20210101", "20210115")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	t.Log(days)
 | 
						|
}
 | 
						|
 | 
						|
func TestRangeMonth(t *testing.T) {
 | 
						|
	days, err := utils.RangeMonths("20200101", "20210115")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
	t.Log(days)
 | 
						|
}
 | 
						|
 | 
						|
func TestRangeHours(t *testing.T) {
 | 
						|
	{
 | 
						|
		hours, err := utils.RangeHours("2021010100", "2021010123")
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		t.Log(hours)
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		hours, err := utils.RangeHours("2021010105", "2021010112")
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		t.Log(hours)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRangeMinutes(t *testing.T) {
 | 
						|
	{
 | 
						|
		var minutes = utils.RangeMinutes(time.Now(), 5, 5)
 | 
						|
		t.Log(minutes)
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		var minutes = utils.RangeMinutes(time.Now(), 5, 3)
 | 
						|
		t.Log(minutes)
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		var now = time.Now()
 | 
						|
		var hour = now.Hour()
 | 
						|
		var minute = now.Minute()
 | 
						|
		now = now.Add(-time.Duration(hour) * time.Hour)
 | 
						|
		now = now.Add(-time.Duration(minute-7) * time.Minute) // 后一天的 00:07 开始往前计算
 | 
						|
		var minutes = utils.RangeMinutes(now, 5, 5)
 | 
						|
		t.Log(minutes)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRangeTimes(t *testing.T) {
 | 
						|
	for _, r := range [][2]string{
 | 
						|
		{"0000", "2359"},
 | 
						|
		{"0000", "0230"},
 | 
						|
		{"0300", "0230"},
 | 
						|
		{"1021", "1131"},
 | 
						|
	} {
 | 
						|
		result, err := utils.RangeTimes(r[0], r[1], 5)
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		t.Log(r, "=>", result, len(result))
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestRange24HourTimes(t *testing.T) {
 | 
						|
	t.Log(utils.Range24HourTimes(5))
 | 
						|
}
 | 
						|
 | 
						|
func TestGroupMinuteRanges(t *testing.T) {
 | 
						|
	{
 | 
						|
		var minutes = utils.GroupMinuteRanges(utils.RangeMinutes(time.Now(), 5, 5))
 | 
						|
		t.Log(minutes)
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		var now = time.Now()
 | 
						|
		var hour = now.Hour()
 | 
						|
		var minute = now.Minute()
 | 
						|
		now = now.Add(-time.Duration(hour) * time.Hour)
 | 
						|
		now = now.Add(-time.Duration(minute-7) * time.Minute) // 后一天的 00:07 开始往前计算
 | 
						|
		var minutes = utils.GroupMinuteRanges(utils.RangeMinutes(now, 5, 5))
 | 
						|
		t.Log(minutes)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestLastDayInMonth(t *testing.T) {
 | 
						|
	t.Log(utils.LastDayInMonth("202209"))
 | 
						|
	t.Log(utils.LastDayInMonth("202210"))
 | 
						|
	t.Log(utils.LastDayInMonth("202202"))
 | 
						|
}
 | 
						|
 | 
						|
func TestFixMonthMaxDay(t *testing.T) {
 | 
						|
	for _, day := range []string{
 | 
						|
		"20220930",
 | 
						|
		"20220929",
 | 
						|
		"20220931",
 | 
						|
		"20220932",
 | 
						|
		"20220222",
 | 
						|
		"20220228",
 | 
						|
		"20220229",
 | 
						|
	} {
 | 
						|
		afterDay, err := utils.FixMonthMaxDay(day)
 | 
						|
		if err != nil {
 | 
						|
			t.Fatal(err)
 | 
						|
		}
 | 
						|
		t.Log(day, "=>", afterDay)
 | 
						|
	}
 | 
						|
}
 |