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.
ntool/ntime/gotime.go

116 lines
2.8 KiB
Go

package ntime
import "time"
var (
// DefaultLayout template for format time
DefaultLayout = time.DateTime
// ZeroTime zero time instance
ZeroTime = time.Time{}
)
// SetLocalByName set local by tz name. eg: UTC, PRC, Local
func SetLocalByName(tzName string) error {
location, err := time.LoadLocation(tzName)
if err != nil {
return err
}
time.Local = location
return nil
}
// NowAddDay add some day time from now
func NowAddDay(day int) time.Time {
return time.Now().AddDate(0, 0, day)
}
// NowAddHour add some hour time from now
func NowAddHour(hour int) time.Time {
return time.Now().Add(time.Duration(hour) * OneHour)
}
// NowAddMinutes add some minutes time from now
func NowAddMinutes(minutes int) time.Time {
return time.Now().Add(time.Duration(minutes) * OneMin)
}
// NowAddSec add some seconds time from now. alias of NowAddSeconds()
func NowAddSec(seconds int) time.Time {
return time.Now().Add(time.Duration(seconds) * time.Second)
}
// NowAddSeconds add some seconds time from now
func NowAddSeconds(seconds int) time.Time {
return time.Now().Add(time.Duration(seconds) * time.Second)
}
// NowHourStart time
func NowHourStart() time.Time {
return HourStart(time.Now())
}
// NowHourEnd time
func NowHourEnd() time.Time {
return HourEnd(time.Now())
}
// AddDay add some day time for given time
func AddDay(t time.Time, day int) time.Time {
return t.AddDate(0, 0, day)
}
// AddHour add some hour time for given time
func AddHour(t time.Time, hour int) time.Time {
return t.Add(time.Duration(hour) * OneHour)
}
// AddMinutes add some minutes time for given time
func AddMinutes(t time.Time, minutes int) time.Time {
return t.Add(time.Duration(minutes) * OneMin)
}
// AddSeconds add some seconds time for given time
func AddSeconds(t time.Time, seconds int) time.Time {
return t.Add(time.Duration(seconds) * time.Second)
}
// AddSec add some seconds time for given time. alias of AddSeconds()
func AddSec(t time.Time, seconds int) time.Time {
return t.Add(time.Duration(seconds) * time.Second)
}
// HourStart time for given time
func HourStart(t time.Time) time.Time {
y, m, d := t.Date()
return time.Date(y, m, d, t.Hour(), 0, 0, 0, t.Location())
}
// HourEnd time for given time
func HourEnd(t time.Time) time.Time {
y, m, d := t.Date()
return time.Date(y, m, d, t.Hour(), 59, 59, int(time.Second-time.Nanosecond), t.Location())
}
// DayStart time for given time
func DayStart(t time.Time) time.Time {
y, m, d := t.Date()
return time.Date(y, m, d, 0, 0, 0, 0, t.Location())
}
// DayEnd time for given time
func DayEnd(t time.Time) time.Time {
y, m, d := t.Date()
return time.Date(y, m, d, 23, 59, 59, int(time.Second-time.Nanosecond), t.Location())
}
// TodayStart time
func TodayStart() time.Time {
return DayStart(time.Now())
}
// TodayEnd time
func TodayEnd() time.Time {
return DayEnd(time.Now())
}