Тип Time из пакета time позволяет осуществлять базовые арифметические операции над данной датой и временем. В таком случае вы можете выяснить даты прошлого или будущего добавив к ним день, месяц или пол года.

Как осуществить математические операции над временем в Go?

1. Создайте файл arithmetics.go со следующим содержимым:

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

2. Запустите код через go run arithmetics.go;
3. Посмотрите на результат в терминале:

Добавляем время через time.Add() и time.AddDate

Тип Time пакета time предоставляет два важных метода для манипуляции над датой и временем.

Первый метод Add принимает time.Duration и AddDate. С помощью метода Add вы можете сдвинуть время вперед в будущее через положительное значение или передвинуть время назад, добавив знак минуса.

Второй метод AddDate принимает аргументы типа int64 как год, месяц или день и добавляет данное значение в нужную нам переменную.

Обратите внимание, что AddDate нормализует результат, как и функция time.Date. Нормализация означает, что в результате добавления месяца для 31 Августа,  результатом будет 1 Октября, потому что следующий месяц содержит только 30 дней (31 Сентября не существует).