Documentation
¶
Overview ¶
Funciones de conversión de fechas, precios, intervalos, números, uuids, lógicas y opciones a textos y viceversa
Index ¶
- func MustParseFechaHora(s string) time.Time
- func MustParseHora(s string) time.Time
- func MustParseUUID(uuid string) pgtype.UUID
- func ParseDate(s string, ff Fecha) (result pgtype.Date, err error)
- func ParseDuracion(s string) (result time.Duration, err error)
- func ParseFechaHora(s string, ff Fecha) (result time.Time, err error)
- func ParseHora(s string) (result time.Time, err error)
- func ParseIntervalAMSD(s string) (result pgtype.Interval, err error)
- func ParseIntervalHMS(s string) (result pgtype.Interval, err error)
- func ParseLogica(s string) (bool, error)
- func ParseNumero(v, sepDecimal string) (result float64, err error)
- func ParseOpcion(opcion string, admitidas ...string) (string, error)
- func ParsePrecio(p string, fp Moneda) (result float64, err error)
- func ParseTime(s string) (result pgtype.Time, err error)
- func ParseTimestamp(s string, ff Fecha) (result pgtype.Timestamp, err error)
- func ParseUUID(uuid string) (result pgtype.UUID, err error)
- func PrintDate(fh pgtype.Date, ff Fecha) string
- func PrintDuracion(z time.Duration) string
- func PrintDuracionIso(z time.Duration) string
- func PrintFecha(fh time.Time, ff Fecha) string
- func PrintFechaHora(fh time.Time, ff Fecha) string
- func PrintHora(fh time.Time, secs bool) string
- func PrintInterval(z pgtype.Interval) string
- func PrintIntervalIso(z pgtype.Interval) string
- func PrintNumero(v float64, decimales int, sepDecimal, sepMiles string) string
- func PrintPrecio(v float64, fp Moneda) string
- func PrintTime(fh pgtype.Time, secs bool) string
- func PrintTimestamp(fh pgtype.Timestamp, ff Fecha) string
- func PrintUUID(uuid pgtype.UUID) string
- func RedondeaPrecio(p, umm float64) float64
- type Fecha
- type Moneda
Examples ¶
- MustParseFechaHora
- MustParseHora
- MustParseUUID
- ParseDate
- ParseDuracion
- ParseFechaHora
- ParseHora
- ParseIntervalAMSD
- ParseIntervalHMS
- ParseLogica
- ParseNumero
- ParseOpcion
- ParsePrecio
- ParseTime
- ParseTimestamp
- ParseUUID
- PrintDate
- PrintDuracion
- PrintDuracionIso
- PrintFecha
- PrintFechaHora
- PrintHora
- PrintInterval
- PrintIntervalIso
- PrintNumero
- PrintPrecio
- PrintTime
- PrintTimestamp
- PrintUUID
- RedondeaPrecio
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MustParseFechaHora ¶
Parsea una fecha con hora opcional en formato ISO
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { fh := formato.MustParseFechaHora("2023-10-12T12:45:00") fmt.Println(formato.PrintFechaHora(fh, formato.DMA)) }
Output: 12/10/2023 12:45
func MustParseHora ¶
Parsea una hora
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { h := formato.MustParseHora("15:16:17") fmt.Println(formato.PrintHora(h, true)) }
Output: 15:16:17
func MustParseUUID ¶
Parsea un objeto a UUID, los vacíos se consideran NULL, panic si error
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { uuid := formato.MustParseUUID("7e2a8034-c319-4dfa-a846-e2c176aba2e4") fmt.Println(formato.PrintUUID(uuid)) }
Output: 7e2a8034-c319-4dfa-a846-e2c176aba2e4
func ParseDate ¶
Parsea una fecha a pgtype.Date. Mismas consideraciones que ParseFechaHora. Los vacios se consideran null.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { d, err := formato.ParseDate("25/4/1974", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintDate(d, formato.AMD)) }
Output: 1974-04-25
func ParseDuracion ¶
Parsea una duración a time.Duration. Soporta H horas, M minutos o S segundos.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { d, err := formato.ParseDuracion("48h") errores.PanicIfError(err) fmt.Println(formato.PrintDuracion(d)) }
Output: 48h
func ParseFechaHora ¶
Parsea una fecha con hora opcional Admite varios tipos de fecha: ff=ISO (ISO A-M-D), ff=MDA (USA M/D/A), ff=AMD (internacional A-M-D), ff=DMA (resto D/M/A) Para MDA, AMD y DMA también se admiten . y - como separador de fecha, el separador de hora siempre es :
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { fh, err := formato.ParseFechaHora("12/10/2023 12:45", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintFechaHora(fh, formato.ISO)) }
Output: 2023-10-12T12:45:00
func ParseHora ¶
Parsea una hora
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { h, err := formato.ParseHora("12:45") errores.PanicIfError(err) fmt.Println(formato.PrintHora(h, false)) }
Output: 12:45
func ParseIntervalAMSD ¶
Parsea una duración a pgtype.Interval. Soporta A años, M meses, S semanas o D dias.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { i, err := formato.ParseIntervalAMSD("30d") errores.PanicIfError(err) fmt.Println(formato.PrintInterval(i)) }
Output: 30d
func ParseIntervalHMS ¶
Parsea una duración a pgtype.Interval. Soporta H horas, M minutos o S segundos.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { i, err := formato.ParseIntervalHMS("48h") errores.PanicIfError(err) fmt.Println(formato.PrintInterval(i)) }
Output: 48h
func ParseLogica ¶
Parsea una variable lógica, soporta: true, false, yes, si, no, 1 y 0
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { f, err := formato.ParseLogica("Si") errores.PanicIfError(err) fmt.Println(f) f, err = formato.ParseLogica("F") errores.PanicIfError(err) fmt.Println(f) _, err = formato.ParseLogica("ZERO") fmt.Println(err) }
Output: true false valor "ZERO" no reconocido
func ParseNumero ¶
Parsea un número, considerando que puede incluir separadores
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { fmt.Println(formato.PrintNumero(12345.6789, 2, ",", ".")) fmt.Println(formato.PrintNumero(12345.6789, 0, ",", ".")) fmt.Println(formato.PrintNumero(12345.6789, -2, ",", ".")) }
Output: 12.345,68 12.346 12.300
func ParseOpcion ¶
Se asegura de que la opción sea alguna de las admitidas, en mayúsculas o minúsculas. Opcionalmente se puede hacer una conversion si admitido tiene el formato "opcion->convertido" La opción por defecto se puede indicar con el formato "->opcion"
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { opt, err := formato.ParseOpcion("tres", "Uno", "Dos", "Tres") errores.PanicIfError(err) fmt.Println(opt) opt, err = formato.ParseOpcion("tres", "Uno->1", "Dos->2", "Tres->3") errores.PanicIfError(err) fmt.Println(opt) _, err = formato.ParseOpcion("cuatro", "Uno", "Dos", "Tres") fmt.Println(err) }
Output: Tres 3 opción "cuatro" no reconocida
func ParsePrecio ¶
Parsea un precio
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { p, err := formato.ParsePrecio(" 1 234,56 € ", formato.EUR) errores.PanicIfError(err) fmt.Println(p) }
Output: 1234.56
func ParseTime ¶
Parsea una hora a pgtype.Time. Mismas consideraciones que ParseFechaHora. Los vacios se consideran null.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { t, err := formato.ParseTime("22:55") errores.PanicIfError(err) fmt.Println(formato.PrintTime(t, false)) }
Output: 22:55
func ParseTimestamp ¶
Parsea una fecha+hora a pgtype.Timestamp. Mismas consideraciones que ParseFechaHora. Los vacios se consideran null.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { ts, err := formato.ParseTimestamp("25/4/1974 22:55", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintTimestamp(ts, formato.AMD)) }
Output: 1974-04-25 22:55
func ParseUUID ¶
Parsea un objeto a UUID, los vacíos se consideran NULL
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { uuid, err := formato.ParseUUID("b55e7cec-7126-4a19-8ab1-86481ead2803") errores.PanicIfError(err) fmt.Println(formato.PrintUUID(uuid)) }
Output: b55e7cec-7126-4a19-8ab1-86481ead2803
func PrintDate ¶
Imprime un pgtype.Date
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { d, err := formato.ParseDate("25/4/1974", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintDate(d, formato.AMD)) }
Output: 1974-04-25
func PrintDuracion ¶
Imprime una duración en formato X horas, X minutos o X segundos.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { d, err := formato.ParseDuracion("48h") errores.PanicIfError(err) fmt.Println(formato.PrintDuracion(d)) }
Output: 48h
func PrintDuracionIso ¶
Imprime una duración en formato ISO8601, util para órdenes SQL
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { d, err := formato.ParseDuracion("48h") errores.PanicIfError(err) fmt.Println(formato.PrintDuracionIso(d)) }
Output: PT172800S
func PrintFecha ¶
Imprime una fecha
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { fh, err := formato.ParseFechaHora("12/10/2023 12:45", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintFecha(fh, formato.DMA)) }
Output: 12/10/2023
func PrintFechaHora ¶
Imprime una fecha+hora
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { fh, err := formato.ParseFechaHora("12/10/2023 12:45", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintFechaHora(fh, formato.ISO)) }
Output: 2023-10-12T12:45:00
func PrintHora ¶
Imprime una hora
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { h, err := formato.ParseHora("12:34:56") errores.PanicIfError(err) fmt.Println(formato.PrintHora(h, false)) fmt.Println(formato.PrintHora(h, true)) }
Output: 12:34 12:34:56
func PrintInterval ¶
Imprime una duración en formato A años, M meses, S semanas, D dias, H horas, M minutos, S segundos.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { i, err := formato.ParseIntervalAMSD("30d") errores.PanicIfError(err) fmt.Println(formato.PrintInterval(i)) }
Output: 30d
func PrintIntervalIso ¶
Imprime una duración en formato ISO8601, util en órdenes SQL
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { i, err := formato.ParseIntervalAMSD("30d") errores.PanicIfError(err) fmt.Println(formato.PrintIntervalIso(i)) }
Output: P30D
func PrintNumero ¶
Imprime un número con decimales, usando los separadores especificados. Si los decimales son negativos, se ponen a 0 las cifras menos significativas. PrintNumero(12345.6789,2,","," ") = "12 345,68" PrintNumero(-12345.6789,-2,","," ") = "-12 300" Ver https://en.wikipedia.org/wiki/Decimal_separator.
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { fmt.Println(formato.PrintNumero(12345.6789, 2, ",", ".")) fmt.Println(formato.PrintNumero(12345.6789, 0, ",", ".")) fmt.Println(formato.PrintNumero(12345.6789, -2, ",", ".")) }
Output: 12.345,68 12.346 12.300
func PrintPrecio ¶
Imprime un precio
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { fmt.Println(formato.PrintPrecio(12345.6789, formato.EUR)) }
Output: 12.345,68 €
func PrintTime ¶
Imprime un pgtype.Time
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { t, err := formato.ParseTime("22:55") errores.PanicIfError(err) fmt.Println(formato.PrintTime(t, false)) }
Output: 22:55
func PrintTimestamp ¶
Imprime un pgtype.Timestamp
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { ts, err := formato.ParseTimestamp("25/4/1974 22:55", formato.DMA) errores.PanicIfError(err) fmt.Println(formato.PrintTimestamp(ts, formato.AMD)) }
Output: 1974-04-25 22:55
func PrintUUID ¶
Imprime un UUID, los NULL se imprimen como vacíos
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/errores" "github.com/horus-es/go-util/v2/formato" ) func main() { uuid, err := formato.ParseUUID("7ca4d9eb-9b81-4aae-86d9-682d73f4138f") errores.PanicIfError(err) fmt.Println(formato.PrintUUID(uuid)) }
Output: 7ca4d9eb-9b81-4aae-86d9-682d73f4138f
func RedondeaPrecio ¶
Redondea un precio (p) usando la unidad monetaria mínima (umm)
Example ¶
package main import ( "fmt" "github.com/horus-es/go-util/v2/formato" ) func main() { fmt.Println(formato.RedondeaPrecio(12345.6789, 50)) }
Output: 12350