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 { beforeDecimals := money / 100 afterDecimals := money % 100 if lang == De { return fmt.Sprintf("%d,%d %s", beforeDecimals, afterDecimals, currency) } return fmt.Sprintf("%s%d.%d", currency, beforeDecimals, afterDecimals) }