cpp

Тип данных Duration

Тип данных Duration описывает длительность между моментами времени в наносекундах. Он является синонимом для типа int64.

Указание значения

Задать значение позволяют следующие функции и методы:

  • Sub() — возвращает разницу между текущим значением момента времени и значением u. Формат метода:
(time.Time).Sub(u time.Time) time.Duration

Пример:

t := time.Date(2022, 3, 21, 22, 49, 47, 0, time.Local)
t2 := time.Date(2024, 3, 21, 22, 49, 47, 0, time.Local)
fmt.Println(t.Sub(t2)) // -17544h0m0s
  • Since() — возвращает разницу между текущем временем и моментом времени t (код time.Now().Sub(t)). Формат функции:
time.Since(t time.Time) time.Duration

Пример:

t := time.Date(2022, 3, 21, 22, 49, 47, 0, time.UTC)
d := time.Since(t)
fmt.Println(d) // 41h41m56.5027528s
  • Until() — возвращает разницу между текущем временем и моментом времени t (код t.Sub(time.Now())). Формат функции:
time.Until(t time.Time) time.Duration

Пример:

t := time.Date(2022, 3, 21, 22, 49, 47, 0, time.UTC)
d := time.Until(t)
fmt.Println(d) // -41h59m49.5201216s
  • ParseDuration() — задает значение на основе строки специального формата. Формат функции:
time.ParseDuration(s string) (time.Duration, error)

Пример:

d, err := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d)   // 41h41m56.5027528s
fmt.Println(err) // <nil>

Существуют также следующие константы:

fmt.Println(time.Nanosecond)  // 1ns
fmt.Println(time.Microsecond) // 1µs
fmt.Println(time.Millisecond) // 1ms
fmt.Println(time.Second)      // 1s
fmt.Println(time.Minute)      // 1m0s
fmt.Println(time.Hour)        // 1h0m0s

Для округления значения можно использовать методы Round() и Truncate(). Форматы методов:

(time.Duration).Round(m time.Duration) time.Duration
(time.Duration).Truncate(m time.Duration) time.Duration

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Round(time.Minute))    // 41h42m0s
fmt.Println(d.Truncate(time.Minute)) // 41h41m0s

Получение значения

Получить значение позволяют следующие методы:

  • String() — возвращает строку специального формата. Формат метода:
(time.Duration).String() string

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.String()) // 41h41m56.5027528s
  • Nanoseconds() — возвращает значение в наносекундах. Формат метода:
(time.Duration).Nanoseconds() int64

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Nanoseconds()) // 150116502752800
  • Microseconds() — возвращает значение в микросекундах. Формат метода:
(time.Duration).Microseconds() int64

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Microseconds()) // 150116502752
  • Milliseconds() — возвращает значение в миллисекундах. Формат метода:
(time.Duration).Milliseconds() int64

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Milliseconds()) // 150116502
  • Seconds() — возвращает значение в секундах. Формат метода:
(time.Duration).Seconds() float64

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Seconds()) // 150116.5027528
  • Minutes() — возвращает значение в минутах. Формат метода:
(time.Duration).Minutes() float64

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Minutes()) // 2501.9417125466666
  • Hours() — возвращает значение в часах. Формат метода:
(time.Duration).Hours() float64

Пример:

d, _ := time.ParseDuration("41h41m56.5027528s")
fmt.Println(d.Hours()) // 41.699028542444445

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp