node build fixed
This commit is contained in:
93
seanime-2.9.10/internal/util/numbers.go
Normal file
93
seanime-2.9.10/internal/util/numbers.go
Normal file
@@ -0,0 +1,93 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"math"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func StringToInt(str string) (int, bool) {
|
||||
dotIndex := strings.IndexByte(str, '.')
|
||||
if dotIndex != -1 {
|
||||
str = str[:dotIndex]
|
||||
}
|
||||
i, err := strconv.Atoi(str)
|
||||
if err != nil {
|
||||
return 0, false
|
||||
}
|
||||
return i, true
|
||||
}
|
||||
|
||||
func StringToIntMust(str string) int {
|
||||
dotIndex := strings.IndexByte(str, '.')
|
||||
if dotIndex != -1 {
|
||||
str = str[:dotIndex]
|
||||
}
|
||||
i, err := strconv.Atoi(str)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
func IntegerToRoman(number int) string {
|
||||
maxRomanNumber := 3999
|
||||
if number > maxRomanNumber {
|
||||
return strconv.Itoa(number)
|
||||
}
|
||||
|
||||
conversions := []struct {
|
||||
value int
|
||||
digit string
|
||||
}{
|
||||
{1000, "M"},
|
||||
{900, "CM"},
|
||||
{500, "D"},
|
||||
{400, "CD"},
|
||||
{100, "C"},
|
||||
{90, "XC"},
|
||||
{50, "L"},
|
||||
{40, "XL"},
|
||||
{10, "X"},
|
||||
{9, "IX"},
|
||||
{5, "V"},
|
||||
{4, "IV"},
|
||||
{1, "I"},
|
||||
}
|
||||
|
||||
var roman strings.Builder
|
||||
for _, conversion := range conversions {
|
||||
for number >= conversion.value {
|
||||
roman.WriteString(conversion.digit)
|
||||
number -= conversion.value
|
||||
}
|
||||
}
|
||||
|
||||
return roman.String()
|
||||
}
|
||||
|
||||
// Ordinal returns the ordinal string for a specific integer.
|
||||
func toOrdinal(number int) string {
|
||||
absNumber := int(math.Abs(float64(number)))
|
||||
|
||||
i := absNumber % 100
|
||||
if i == 11 || i == 12 || i == 13 {
|
||||
return "th"
|
||||
}
|
||||
|
||||
switch absNumber % 10 {
|
||||
case 1:
|
||||
return "st"
|
||||
case 2:
|
||||
return "nd"
|
||||
case 3:
|
||||
return "rd"
|
||||
default:
|
||||
return "th"
|
||||
}
|
||||
}
|
||||
|
||||
// IntegerToOrdinal the number by adding the Ordinal to the number.
|
||||
func IntegerToOrdinal(number int) string {
|
||||
return strconv.Itoa(number) + toOrdinal(number)
|
||||
}
|
||||
Reference in New Issue
Block a user