node build fixed

This commit is contained in:
ra_ma
2025-09-20 14:08:38 +01:00
parent c6ebbe069d
commit 3d298fa434
1516 changed files with 535727 additions and 2 deletions

View 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)
}