Тип Time
из пакета time
позволяет осуществлять базовые арифметические операции над данной датой и временем. В таком случае вы можете выяснить даты прошлого или будущего добавив к ним день, месяц или пол года.
Как осуществить математические операции над временем в Go?
1. Создайте файл arithmetics.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package main import ( "fmt" "time" ) func main() { l, err := time.LoadLocation("Europe/Vienna") if err != nil { panic(err) } t := time.Date(2017, 11, 30, 11, 10, 20, 0, l) fmt.Printf("Дата по умолчанию: %v\n", t) // Добавить 3 дня r1 := t.Add(72 * time.Hour) fmt.Printf("Добавили +3 дня: %v\n", r1) // Вычесть 3 дня r1 = t.Add(-72 * time.Hour) fmt.Printf("Убрали -3 дня: %v\n", r1) // Более удобное api для добавления дней/месяцев/годов r1 = t.AddDate(1, 3, 2) fmt.Printf("Дата по умолчанию +1 год +3 месяца +2 дня: %v\n", r1) } |
2. Запустите код через go run arithmetics.go
;
3. Посмотрите на результат в терминале:
1 2 3 4 |
Дата по умолчанию: 2017-11-30 11:10:20 +0100 CET Добавили +3 дня: 2017-12-03 11:10:20 +0100 CET Убрали -3 дня: 2017-11-27 11:10:20 +0100 CET Дата по умолчанию +1 год +3 месяца +2 дня: 2019-03-04 11:10:20 +0100 CET |
Добавляем время через time.Add() и time.AddDate
Тип Time
пакета time
предоставляет два важных метода для манипуляции над датой и временем.
Первый метод Add
принимает time.Duration
и AddDate
. С помощью метода Add
вы можете сдвинуть время вперед в будущее через положительное значение или передвинуть время назад, добавив знак минуса.
Второй метод AddDate
принимает аргументы типа int64
как год, месяц или день и добавляет данное значение в нужную нам переменную.
Обратите внимание, что
AddDate
нормализует результат, как и функцияtime.Date
. Нормализация означает, что в результате добавления месяца для31 Августа
, результатом будет1 Октября
, потому что следующий месяц содержит только 30 дней (31 Сентября
не существует).
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»