среда, 29 июля 2020 г.

Пакет time в Golang, тип Time, методы Add, AddDate

Метод Add

func (t Time) Add(d Duration) Time

Add возвращает время t+d.

Пример использования Add

package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Date(2009, 1, 1, 12, 0, 0, 0, time.UTC)
    afterTenSeconds := start.Add(time.Second * 10)
    afterTenMinutes := start.Add(time.Minute * 10)
    afterTenHours := start.Add(time.Hour * 10)
    afterTenDays := start.Add(time.Hour * 24 * 10)

    fmt.Printf("start = %v\n", start)
    fmt.Printf("start.Add(time.Second * 10) = %v\n", afterTenSeconds)
    fmt.Printf("start.Add(time.Minute * 10) = %v\n", afterTenMinutes)
    fmt.Printf("start.Add(time.Hour * 10) = %v\n", afterTenHours)
    fmt.Printf("start.Add(time.Hour * 24 * 10) = %v\n", afterTenDays)

}

Вывод:

start = 2009-01-01 12:00:00 +0000 UTC
start.Add(time.Second * 10) = 2009-01-01 12:00:10 +0000 UTC
start.Add(time.Minute * 10) = 2009-01-01 12:10:00 +0000 UTC
start.Add(time.Hour * 10) = 2009-01-01 22:00:00 +0000 UTC
start.Add(time.Hour * 24 * 10) = 2009-01-11 12:00:00 +0000 UTC

Метод AddDate

func (t Time) AddDate(years int, months int, days int) Time

AddDate возвращает время, соответствующее добавлению заданного количества лет, месяцев и дней к t. Например, AddDate(-1, 2, 3), примененный к January 1, 2011, возвращает March 4, 2010.

AddDate нормализует свой результат так же, как Date, например, добавление одного месяца к October 31 приводит к December 1, нормализованной форме для November 31.

Пример использования AddDate

package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Date(2009, 1, 1, 0, 0, 0, 0, time.UTC)
    oneDayLater := start.AddDate(0, 0, 1)
    oneMonthLater := start.AddDate(0, 1, 0)
    oneYearLater := start.AddDate(1, 0, 0)

    fmt.Printf("oneDayLater: start.AddDate(0, 0, 1) = %v\n", oneDayLater)
    fmt.Printf("oneMonthLater: start.AddDate(0, 1, 0) = %v\n", oneMonthLater)
    fmt.Printf("oneYearLater: start.AddDate(1, 0, 0) = %v\n", oneYearLater)

}

Вывод:

oneDayLater: start.AddDate(0, 0, 1) = 2009-01-02 00:00:00 +0000 UTC
oneMonthLater: start.AddDate(0, 1, 0) = 2009-02-01 00:00:00 +0000 UTC
oneYearLater: start.AddDate(1, 0, 0) = 2010-01-01 00:00:00 +0000 UTC


Читайте также:


Комментариев нет:

Отправить комментарий