Switch more functions to ersteller_lib

This commit is contained in:
Achim Rohn
2025-08-11 10:24:00 +02:00
parent 0de3e04d68
commit 177a15f022
2 changed files with 78 additions and 0 deletions
+1
View File
@@ -9,6 +9,7 @@ type Language string
const (
En Language = "en"
De Language = "de"
)
type NavItem struct {
+77
View File
@@ -0,0 +1,77 @@
package ersteller_lib
import (
"fmt"
"strconv"
"time"
)
func ParseIntWithDefault(input string, defaultValue int) int {
value, err := strconv.Atoi(input)
if err != nil {
return defaultValue
}
return value
}
func ParseFloat32WithDefault(input string, defaultValue float32) float32 {
value, err := strconv.ParseFloat(input, 32)
if err != nil {
return defaultValue
}
return float32(value)
}
func ParseBoolWithDefault(input string, defaultValue bool) bool {
if input == "true" {
return true
}
return defaultValue
}
func ParseCheckboxWithDefault(input string, defaultValue bool) bool {
if input == "on" {
return true
}
return defaultValue
}
func ParseTime(timeString string, timezone string) time.Time {
if timezone == "" {
timezone = "Europe/Berlin"
}
location, err := time.LoadLocation(timezone)
if err != nil {
println(fmt.Sprintf("failed to load location %v, error: %v", timezone, err))
location = time.Local
}
timeObject, err := time.Parse("2006-01-02T15:04", timeString)
if err == nil {
timeObject, err = time.ParseInLocation("2006-01-02T15:04", timeString, location)
}
if err != nil {
timeObject = time.UnixMilli(0).UTC()
}
return timeObject
}
func TimeToString(time time.Time) string {
if time.UnixMilli() == 0 {
return ""
}
return time.Format("2006-01-02 15:04")
}
func TimeToValue(time time.Time) string {
if time.UnixMilli() == 0 {
return ""
}
return time.Format("2006-01-02T15:04")
}
func MoneyCentsToString(money int, currency string, lang Language) string {
if lang == De {
return fmt.Sprintf("%,2f %s", money, currency)
}
return fmt.Sprintf("%s%.2f", currency, money)
}