www vehiculos vehicle tag registracion plate online near license gorenew florida espanol check and go

go - vehiculos - tag renewal online



Añadir días hasta la fecha en Go (2)

Necesita convertir weeksToAdd para weeksToAdd en un time.Duration . time.Duration :

myDate.Add(time.Hour * 24 * 7 * time.Duration(weeksToAdd))

En Go, los alias de tipo no se pueden usar indistintamente aunque el tiempo. La time.Duration es técnicamente un int64 .

Además, aquí, aunque las constantes numéricas 24 y 7 no están escritas explícitamente, todavía se pueden usar como están, consulte https://blog.golang.org/constants para obtener una explicación detallada.

Consulte http://play.golang.org/p/86TFFlixWj para ver un ejemplo en ejecución.

Como se mencionó en los comentarios y otra respuesta, el uso de time.AddDate() es preferible a time.Add() cuando se trabaja en una duración superior a 24 horas, ya que time.Duration básicamente representa nanosegundos. Cuando se trabaja con días, semanas, meses y años, se debe tener mucho cuidado debido a cosas como el horario de verano, los años bisiestos y, posiblemente, los segundos de salto.

La documentación para time.Duration type y las constantes asociadas que representan unidades enfatizan este problema ( https://golang.org/pkg/time/#Duration ):

No existe una definición de unidades de Día o más para evitar confusiones en las transiciones de la zona horaria del horario de verano.

Estoy intentando agregar un número de días (en realidad, un número de semanas) a una fecha existente en Ir. He intentado myDate.Add(time.Hour * 24 * 7 * weeksToAdd)

Pero me sale un error cuando intento compilar: invalid operation: time.Hour * startAdd (mismatched types time.Duration and float64)

Entonces weeksToAdd es actualmente un float64 , pero puedo cambiarlo a un int o lo que sea. Cambiarlo a un int solo cambió mi error para decir que int y Duration no se pueden multiplicar.

¿Cómo agrego días a una fecha?