¿Cómo sumar y restar tiempo a una fecha en Go?
Una ves que tenemos una estructura del tipo time.Time, podemos realizar operaciones, como sumar o restar una cantidad de tiempo a esta. Para hacer esto podemos utilizar el método Add.
Ejemplo de operaciones utilizando fechas en Go
El siguiente programa tiene el objetivo de imprimir la fecha actual, y después en base a esta calcular la fecha hace un año y dentro de un año.
package main
import (
"fmt"
"time"
)
func main() {
ahora := time.Now()
fmt.Println("Fecha en este momento:")
fmt.Println(ahora)
fmt.Println("Dentro de un año:")
fecha2 := ahora.Add(365 * 24 * time.Hour)
fmt.Println(fecha2)
fmt.Println("Hace un año:")
fecha3 := ahora.Add(365 * 24 * time.Hour * -1)
fmt.Println(fecha3)
}
Descripción del programa para realizar operaciones con fechas en Go
Capturamos en una variable la fecha actual.
ahora := time.Now()
Calculamos la fecha dentro de un año, es decir 365 días multiplicados por 24 horas.
fecha2 := ahora.Add(365 * 24 * time.Hour)
Calculamos la fecha hace un año, para indicar que el cálculo se haga a la inversa, multiplicamos por -1.
fecha3 := ahora.Add(365 * 24 * time.Hour * -1)
Imprimimos también cada una de las fechas, el programa nos arrojará algo así.
$ go run main.go
Fecha en este momento:
2019-08-21 22:09:45.143274 -0400 EDT m=+0.000175347
Dentro de un año:
2020-08-20 22:09:45.143274 -0400 EDT m=+31536000.000175347
Hace un año:
2018-08-21 22:09:45.143274 -0400 EDT m=-31535999.999824653