2019-10-09 22:23:43 +03:00

62 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Go предлагает обширную поддержку для времени и
// продолжительности; вот несколько примеров.
package main
import (
"fmt"
"time"
)
func main() {
p := fmt.Println
// Начнем с получения текущего времени
now := time.Now()
p(now)
// Вы можете построить структуру `time`, указав год,
// месяц, день и т.д. Время всегда связано с `местоположением`,
// т.е. часовым поясом.
then := time.Date(
2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
p(then)
// Вы можете извлечь различные компоненты значения времени.
p(then.Year())
p(then.Month())
p(then.Day())
p(then.Hour())
p(then.Minute())
p(then.Second())
p(then.Nanosecond())
p(then.Location())
// Получения дня недели доступно через метод `Weekday`.
p(then.Weekday())
// Эти методы сравниваются два раза, проверяя,
// происходит ли первый случай до, после или
// одновременно со вторым, соответственно.
p(then.Before(now))
p(then.After(now))
p(then.Equal(now))
// Метод `Sub` возвращает `Duration`, интервал между
// двумя временами.
diff := now.Sub(then)
p(diff)
// Мы можем вычислить продолжительность.
p(diff.Hours())
p(diff.Minutes())
p(diff.Seconds())
p(diff.Nanoseconds())
// Вы можете использовать `Add`, чтобы продвинуть
// время на заданную продолжительность, или с `-`,
// чтобы переместиться назад.
p(then.Add(diff))
p(then.Add(-diff))
}