JCC-CSScheduler/schedulerMiddleware/test.go

65 lines
1.5 KiB
Go

package main
import (
"errors"
"fmt"
"strconv"
"strings"
)
// ParseRange 解析区间字符串,返回两个整数(起始值和结束值)
func ParseRange(rangeStr string) (int, int, error) {
parts := strings.Split(rangeStr, "-")
if len(parts) != 2 {
return 0, 0, errors.New("invalid range format")
}
start, err := strconv.Atoi(parts[0])
if err != nil {
return 0, 0, errors.New("invalid start number in range")
}
end, err := strconv.Atoi(parts[1])
if err != nil {
return 0, 0, errors.New("invalid end number in range")
}
return start, end, nil
}
// IsInRange 检查给定的区间是否在已知范围内,并返回已知范围字符串(如果匹配)
func IsInRange(inputRangeStr, knownRangeStr string) (string, error) {
knownStart, knownEnd, err := ParseRange(knownRangeStr)
if err != nil {
return "", err
}
inputStart, inputEnd, err := ParseRange(inputRangeStr)
if err != nil {
return "", err
}
// 检查输入区间是否在已知范围内
fmt.Println("parsing inputStart : ", inputStart)
fmt.Println("parsing knownStart : ", knownStart)
fmt.Println("parsing inputEnd : ", inputEnd)
fmt.Println("parsing knownEnd : ", knownEnd)
if inputStart >= knownStart && inputEnd <= knownEnd {
return knownRangeStr, nil // 返回已知范围字符串
}
return "", errors.New("input range is not within the known range")
}
func main() {
inputRange := "1-10"
knownRange := "0-100"
result, err := IsInRange(inputRange, knownRange)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Known Range:", result)
}
}