mirror of https://github.com/mickael-menu/zk
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
518 B
Go
33 lines
518 B
Go
package date
|
|
|
|
import "time"
|
|
|
|
// Provider returns a date instance.
|
|
type Provider interface {
|
|
Date() time.Time
|
|
}
|
|
|
|
// Now is a date provider returning the current date.
|
|
type Now struct{}
|
|
|
|
func (n *Now) Date() time.Time {
|
|
return time.Now()
|
|
}
|
|
|
|
// Frozen is a date provider returning always the same date.
|
|
type Frozen struct {
|
|
date time.Time
|
|
}
|
|
|
|
func NewFrozenNow() Frozen {
|
|
return Frozen{time.Now()}
|
|
}
|
|
|
|
func NewFrozen(date time.Time) Frozen {
|
|
return Frozen{date}
|
|
}
|
|
|
|
func (n *Frozen) Date() time.Time {
|
|
return n.date
|
|
}
|