Time, Sumar y restar a una fecha

¿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