Documentation ¶
Overview ¶
Package duration provides a partial implementation of ISO8601 durations. Constant values are assumed for non-constant timespans for convenience 1 Day = 24 Hours 1 Month = 30 Days 1 Year = 365 Days
Index ¶
- Constants
- Variables
- type Duration
- func (d *Duration) Days() float64
- func (d *Duration) HasTimePart() bool
- func (d *Duration) Hours() float64
- func (d *Duration) IsWeeksOnly() bool
- func (d *Duration) IsZero() bool
- func (d Duration) MarshalJSON() ([]byte, error)
- func (d *Duration) Minutes() float64
- func (d *Duration) Seconds() float64
- func (d *Duration) String() string
- func (d *Duration) ToDuration() time.Duration
- func (d *Duration) UnmarshalJSON(data []byte) error
- func (d *Duration) Weeks() float64
- func (d *Duration) Years() float64
Constants ¶
const ( // Zero is zero value for duration. ISO-8601 mandates at least one element for a zero duration (4.4.3.2.c - page 21) Zero = "P0D" // Day is an average day duration Day = time.Hour * 24 // Week is an average week duration Week = Day * 7 // Month is an average month duration Month = Day * 30 // Year is an average year duration Year = Day * 365 )
Variables ¶
var ( // ErrBadFormat is returned when parsing fails ErrBadFormat = errors.New("invalid ISO8601 string") )
Functions ¶
This section is empty.
Types ¶
type Duration ¶
Duration is ISO8601 type for your structs that will ensure correct validation and formatting per ISO8601 standard
func ParseString ¶
ParseString parses string into ISO8601 duration
func (*Duration) HasTimePart ¶
HasTimePart checks if duration has time section
func (*Duration) IsWeeksOnly ¶
IsWeeksOnly checks whether duration in whole weeks
func (Duration) MarshalJSON ¶
MarshalJSON converts Duration into json value
func (*Duration) String ¶
String prints out the value passed in. It's not strictly according to the ISO spec, but it's pretty close. In particular, months are not returned. Instead, it returns a value in days (1D ~ 364D) or weeks (1W ~ 52W) whenever possible.
func (*Duration) ToDuration ¶
ToDuration converst ISO8001 duration into time.Duration
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON validates json against Duration type