cockroach: github.com/abhinavdahiya/cockroach/util/duration Index | Files

package duration

import "github.com/abhinavdahiya/cockroach/util/duration"

Index

Package Files

duration.go

Variables

var ErrEncodeOverflow = errors.New("overflow during Encode")

ErrEncodeOverflow is returned by Encode when the sortNanos returned would have overflowed or underflowed.

func Add Uses

func Add(t time.Time, d Duration) time.Time

Add returns the time t+d.

type Duration Uses

type Duration struct {
    Months int64
    Days   int64
    Nanos  int64
}

A Duration represents a length of time.

A duration of "1 month" cannot be represented as a fixed number of nanoseconds because the length of months vary. The same is true for days because of leap seconds. Given a begin or end time to anchor a duration, the nanosecond count can be calculated, but it's useful to represent durations such as "1 year 3 months" without an anchor. Duration allows this.

For the purposes of Compare and Encode, 1 month is considered equivalent to 30 days and 1 day is equivalent to 24 * 60 * 60 * 1E9 nanoseconds.

TODO(dan): Until the overflow and underflow handling is fixed, this is only useful for durations of < 292 years.

func Decode Uses

func Decode(sortNanos int64, months int64, days int64) (Duration, error)

Decode reverses the three integers returned from Encode and produces an equal Duration to the original.

func (Duration) Add Uses

func (d Duration) Add(x Duration) Duration

Add returns a Duration representing a time length of d+x.

func (Duration) Compare Uses

func (d Duration) Compare(x Duration) int

Compare returns an integer representing the relative length of two Durations. The result will be 0 if d==x, -1 if d < x, and +1 if d > x.

func (Duration) Div Uses

func (d Duration) Div(x int64) Duration

Div returns a Duration representing a time length of d/x.

func (Duration) Encode Uses

func (d Duration) Encode() (sortNanos int64, months int64, days int64, err error)

Encode returns three integers such that the original Duration is recoverable (using Decode) and the first int will approximately sort a collection of encoded Durations.

func (Duration) EncodeBigInt Uses

func (d Duration) EncodeBigInt() (sortNanos *big.Int, months int64, days int64)

EncodeBigInt is the same as Encode, except that it always returns successfully and is slower.

func (Duration) Mul Uses

func (d Duration) Mul(x int64) Duration

Mul returns a Duration representing a time length of d*x.

func (Duration) String Uses

func (d Duration) String() string

String returns a string representation of a Duration.

func (Duration) Sub Uses

func (d Duration) Sub(x Duration) Duration

Sub returns a Duration representing a time length of d-x.

Package duration imports 5 packages (graph). Updated 2017-03-13. Refresh now. Tools for package owners. This is a dead-end fork (no commits since the fork).