Documentation
¶
Overview ¶
Package fecha está pensado para simplificar el trabajo con fechas. Trabaja con un int subyacente, por lo que las comparaciones son fáciles. Además incluye las funciones de Marshal y Unmarshal para MongoDB, SQL y JSON.
Index ¶
- Constants
- Variables
- func Diff(f1, f2 Fecha) (dias int)
- type Agrupacion
- type Fecha
- func NewFecha(texto string) (fch Fecha, err error)
- func NewFechaFromInts(año, mes, dia int) (fch Fecha)
- func NewFechaFromLayout(layout, texto string) (fch Fecha, err error)
- func NewFechaFromTime(t time.Time) (fch Fecha)
- func TimeSeries(desde, hasta Fecha, agrupacion Agrupacion) (fechas []Fecha, err error)
- func (f Fecha) AgregarAños(cantidad int) (nuevaFecha Fecha)
- func (f Fecha) AgregarDias(dias int) (NuevaFecha Fecha)
- func (f Fecha) AgregarDiasHabiles(cantidad int) (nuevaFecha Fecha)
- func (f Fecha) AgregarMeses(cantidad int) (nuevaFecha Fecha)
- func (t *Fecha) AssignTo(dst interface{}) error
- func (f Fecha) Año() int
- func (t *Fecha) DecodeBinary(ci *pgtype.ConnInfo, src []byte) error
- func (t *Fecha) DecodeText(ci *pgtype.ConnInfo, src []byte) error
- func (f Fecha) Dia() int
- func (f Fecha) DiaDeLaSemana() string
- func (src Fecha) EncodeBinary(ci *pgtype.ConnInfo, buf []byte) ([]byte, error)
- func (src *Fecha) EncodeText(ci *pgtype.ConnInfo, buf []byte) ([]byte, error)
- func (t *Fecha) Get() interface{}
- func (f Fecha) IsValid() bool
- func (f Fecha) IsZero() bool
- func (f *Fecha) JSONString() string
- func (f Fecha) MarshalJSON() (by []byte, err error)
- func (f Fecha) Menos(f2 Fecha) (dias int)
- func (f Fecha) Mes() int
- func (t *Fecha) NewTypeValue() pgtype.Value
- func (f Fecha) PeriodoMes() Mes
- func (f *Fecha) Scan(value interface{}) error
- func (t *Fecha) Set(src interface{}) error
- func (f Fecha) String() string
- func (f Fecha) Time() (nuevaFecha time.Time)
- func (Fecha) TypeName() string
- func (f *Fecha) UnmarshalJSON(input []byte) error
- func (f Fecha) Value() (driver.Value, error)
- type Mes
- func (m Mes) Anterior(f2 Mes) bool
- func (m Mes) AnteriorOIgual(f2 Mes) bool
- func (t *Mes) AssignTo(dst interface{}) error
- func (m Mes) Año() int
- func (t *Mes) DecodeBinary(ci *pgtype.ConnInfo, src []byte) error
- func (src Mes) EncodeBinary(ci *pgtype.ConnInfo, buf []byte) ([]byte, error)
- func (t *Mes) Get() interface{}
- func (m Mes) JSONString() string
- func (m Mes) MarshalJSON() (by []byte, err error)
- func (m Mes) MesDelAño() int
- func (t *Mes) NewTypeValue() pgtype.Value
- func (m Mes) Posterior(f2 Mes) bool
- func (m Mes) PosteriorOIgual(f2 Mes) bool
- func (m Mes) PrimerDia() Fecha
- func (m *Mes) Scan(value interface{}) error
- func (t *Mes) Set(src interface{}) error
- func (m Mes) String() (out string)
- func (m Mes) SumarMeses(meses int) (out Mes)
- func (Mes) TypeName() string
- func (m Mes) UltimoDia() Fecha
- func (m *Mes) UnmarshalJSON(input []byte) (err error)
- func (m Mes) Valid() bool
- func (m Mes) Value() (driver.Value, error)
- func (m Mes) Zero() bool
- type Time
Constants ¶
const AñoMaximo = 2200
AñoMaximo determina que si se ingresa una fecha con año posterior, el período será considerado inválido.
const AñoMinimo = 1900
AñoMinimo determina que si se ingresa una fecha con año menor, el período será considerado inválido.
const MesPrimero = true
MesPrimero true: 03/2020. Si es false se muestra 2020/03
const SeparadorMes = "/"
SeparadorMes es el caracter utilizado para separar el mes de año al mostrarlo como string
Variables ¶
var NilMes = Mes{}
Functions ¶
Types ¶
type Agrupacion ¶
type Agrupacion string
Agrupacion dice el intervalo que se desea para una TimeSeries
const ( // AgrupacionMensual devolverá el primer día de cada mes AgrupacionMensual Agrupacion = "Mensual" // AgrupacionSemanal devolverá las semanas agrupando el lunes como primer día AgrupacionSemanal = "Semanal" )
type Fecha ¶
type Fecha int
Fecha permite utilizar time.Time ignorando horas y zonas horarias. Se entiende que todas las fechas están guardadas en UTC.
func NewFechaFromInts ¶ added in v0.7.0
NewFechaFromInts le corta la hora y devuelve la fecha.
func NewFechaFromLayout ¶
NewFechaFromLayout parsea el texto ingresado, utilizando el layout especificado.
func NewFechaFromTime ¶
NewFechaFromTime le corta la hora y devuelve la fecha.
func TimeSeries ¶
func TimeSeries(desde, hasta Fecha, agrupacion Agrupacion) (fechas []Fecha, err error)
TimeSeries devuelve todos los intervalos de fechas entre las dos fechas especificadas. Por ejemplo: entre 01/05/2017 y 04/01/2018 = [01/05/2017, 01/06/2017, 01/08/2018, 01/09/2018...]
func (Fecha) AgregarAños ¶
AgregarAños devuelve una nueva fecha con los añós agregados
func (Fecha) AgregarDias ¶
AgregarDias devuelve una nueva fecha con la cantidad de días agregados Si el signo es negativo los resta.
func (Fecha) AgregarDiasHabiles ¶
AgregarDiasHabiles suma la cantidad de días especificados en el argumento. Considera los sábados y domingos (no tiene en cuenta feriados)
func (Fecha) AgregarMeses ¶
AgregarMeses suma la cantidad de meses deseados. El día siempre queda igual salvo que el mes destino tenga menos días. Por ejemplo, sumar 1 mes al 31/01/2017 resulta en 28/02/2017
func (*Fecha) DecodeBinary ¶ added in v0.7.0
func (*Fecha) DecodeText ¶ added in v0.7.0
func (Fecha) DiaDeLaSemana ¶
DiaDeLaSemana devuelve la fecha del día para suegerirla en el index
func (Fecha) EncodeBinary ¶ added in v0.7.0
func (*Fecha) EncodeText ¶ added in v0.7.0
func (*Fecha) JSONString ¶
JSONString devuelve el la fecha en forato 2016-02-19
func (Fecha) MarshalJSON ¶
MarshalJSON es para tomar un string y pasarlo a una fecha.Fecha
func (Fecha) Menos ¶
Menos devuelve la cantidad de días de diferencia entre dos fechas Se entiende que f2 es la fecha posterior.
func (*Fecha) NewTypeValue ¶ added in v0.7.0
func (Fecha) PeriodoMes ¶ added in v0.7.0
PeriodoMes devuelve la struct Mes correspondiente a la fecha. Se supone que se está trabajando con una fecha válida.
func (*Fecha) Scan ¶
Scan satisface la interface de package sql. En la base de datos la guarda como el tipo DATE que es un int64
func (*Fecha) UnmarshalJSON ¶
UnmarshalJSON Es para pasar un Fecha => JSON
type Mes ¶ added in v0.7.0
type Mes struct {
// contains filtered or unexported fields
}
Mes es una estructura para representar un mes calendario de un año particular.Mes Reduce la ambiguedad ya que no es necesario ingresar un día.
Se usaron variables locales para evitar tener una fecha en un estado inválido.
En JSON se marshaliza con el formato "2020-08" En la base de datos se persiste como un DATE
func NewMesFromJSON ¶ added in v0.8.0
func NewMesMust ¶ added in v0.8.0
func (Mes) AnteriorOIgual ¶ added in v0.8.0
func (*Mes) DecodeBinary ¶ added in v0.8.0
func (Mes) EncodeBinary ¶ added in v0.8.0
func (Mes) JSONString ¶ added in v0.7.0
JSONString devuelve la representación que se utiliza en JSON. Si es cero devuelve null Si no es válida devuelve "N/D"
func (Mes) MarshalJSON ¶ added in v0.7.0
MarshalJSON es para tomar una una struct a un string JSON.
func (*Mes) NewTypeValue ¶ added in v0.8.0
func (Mes) PosteriorOIgual ¶ added in v0.8.0
func (Mes) PrimerDia ¶ added in v0.7.0
PrimerDia devuelve la fecha considerando el primer día del período.
func (*Mes) Scan ¶ added in v0.7.0
Scan satisface la interface de package sql. Si el valor que estaba persistido es menor al mínimo o mayor al máximo, no va a dar a error. Queda a criterio del usuario analizarla con el método Valid(). Si el va
func (Mes) SumarMeses ¶ added in v0.7.0
SumarMeses devuelve una nueva fecha con los meses agregados. Si se quiere restar, ingresar meses en negativo. Se supone que se está trabajando con un Mes válido no cero.
func (Mes) UltimoDia ¶ added in v0.7.0
UltimoDia devuelve la fecha considerando el último día del período.
func (*Mes) UnmarshalJSON ¶ added in v0.7.0
UnmarshalJSON es para parsear el string a una struct Mes. Si llega una cadena null o vacía, se crea una struct con valor cero.