26 lines
566 B
Go
26 lines
566 B
Go
|
package util
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
type DateRange struct {
|
||
|
From time.Time
|
||
|
To time.Time
|
||
|
}
|
||
|
|
||
|
func NewDateRange(from time.Time, to time.Time) DateRange {
|
||
|
from, _ = time.Parse("2006-01-02", from.Format("2006-01-02"))
|
||
|
to, _ = time.Parse("2006-01-02", to.Format("2006-01-02"))
|
||
|
if from.After(to) {
|
||
|
from, to = to, from
|
||
|
}
|
||
|
return DateRange{from, to}
|
||
|
}
|
||
|
|
||
|
func (d DateRange) Days() int {
|
||
|
return int(d.To.Sub(d.From).Hours() / 24)
|
||
|
}
|
||
|
|
||
|
func DateRangeAround(date time.Time, months int) DateRange {
|
||
|
return NewDateRange(date.AddDate(0, -months, 0), date.AddDate(0, months, 0))
|
||
|
}
|