mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2026-01-08 08:45:47 +08:00
支持购买套餐/续费套餐/用户账户操作等
This commit is contained in:
@@ -2,13 +2,14 @@ package utils
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/errors"
|
||||
"github.com/iwind/TeaGo/lists"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
timeutil "github.com/iwind/TeaGo/utils/time"
|
||||
"regexp"
|
||||
"time"
|
||||
)
|
||||
|
||||
// 计算日期之间的所有日期,格式为YYYYMMDD
|
||||
// RangeDays 计算日期之间的所有日期,格式为YYYYMMDD
|
||||
func RangeDays(dayFrom string, dayTo string) ([]string, error) {
|
||||
ok, err := regexp.MatchString(`^\d{8}$`, dayFrom)
|
||||
if err != nil {
|
||||
@@ -56,7 +57,56 @@ func RangeDays(dayFrom string, dayTo string) ([]string, error) {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 计算小时之间的所有小时,格式为YYYYMMDDHH
|
||||
// RangeMonths 计算日期之间的所有月份,格式为YYYYMM
|
||||
func RangeMonths(dayFrom string, dayTo string) ([]string, error) {
|
||||
ok, err := regexp.MatchString(`^\d{8}$`, dayFrom)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !ok {
|
||||
return nil, errors.New("invalid 'dayFrom'")
|
||||
}
|
||||
|
||||
ok, err = regexp.MatchString(`^\d{8}$`, dayTo)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !ok {
|
||||
return nil, errors.New("invalid 'dayTo'")
|
||||
}
|
||||
|
||||
if dayFrom > dayTo {
|
||||
dayFrom, dayTo = dayTo, dayFrom
|
||||
}
|
||||
|
||||
result := []string{dayFrom[:6]}
|
||||
|
||||
year := types.Int(dayFrom[:4])
|
||||
month := types.Int(dayFrom[4:6])
|
||||
day := types.Int(dayFrom[6:])
|
||||
t := time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.Local)
|
||||
for {
|
||||
t = t.AddDate(0, 0, 20)
|
||||
newDay := timeutil.Format("Ymd", t)
|
||||
if newDay <= dayTo {
|
||||
var monthString = newDay[:6]
|
||||
if !lists.ContainsString(result, monthString) {
|
||||
result = append(result, monthString)
|
||||
}
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
var endMonth = dayTo[:6]
|
||||
if !lists.ContainsString(result, endMonth) {
|
||||
result = append(result, endMonth)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// RangeHours 计算小时之间的所有小时,格式为YYYYMMDDHH
|
||||
func RangeHours(hourFrom string, hourTo string) ([]string, error) {
|
||||
ok, err := regexp.MatchString(`^\d{10}$`, hourFrom)
|
||||
if err != nil {
|
||||
|
||||
@@ -10,6 +10,13 @@ func TestRangeDays(t *testing.T) {
|
||||
t.Log(days)
|
||||
}
|
||||
|
||||
func TestRangeMonth(t *testing.T) {
|
||||
days, err := RangeMonths("20200101", "20210115")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(days)
|
||||
}
|
||||
|
||||
func TestRangeHours(t *testing.T) {
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user