Files
2021-12-10 11:34:19 +08:00

74 lines
1.5 KiB
Go

package utils
import (
"math"
"time"
)
type Week int
const (
Monday Week = iota + 1
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
func IsEmptyTime(t time.Time) bool {
return t.IsZero()
}
func FormatDate(t time.Time) string {
return t.Format("2006-01-02")
}
func FormatDatetime(t time.Time) string {
return t.Format("2006-01-02 15:04:05")
}
func FormatTimeForLayout(t time.Time, layout string) string {
return t.Format(layout)
}
func DateTimeToTime(t string) time.Time {
_time, _ := time.ParseInLocation("2006-01-02 15:04:05", t, time.Local)
return _time
}
func DataTimeToDate(t string) time.Time {
_time, _ := time.ParseInLocation("2006-01-02", t, time.Local)
return _time
}
func GetMondayTime(t time.Time) time.Time {
offset := int(time.Monday - t.Weekday())
if offset > 0 {
offset = -6
}
return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset)
}
func MonthBeginAt(year, month int) time.Time {
return time.Date(year, time.Month(month), 1, 0, 0, 0, 0, time.Now().Location())
}
func MonthFinishAt(year, month int) time.Time {
mark := time.Date(year, time.Month(month), 1, 23, 59, 59, 0, time.Now().Location())
return mark.AddDate(0, 1, -1)
}
func DiffTimeMonth(time1, time2 time.Time) int {
year := math.Abs(float64(time1.Year()) - float64(time2.Year()))
month := math.Abs(float64(time1.Month()) - float64(time2.Month()))
return int(year)*12 + int(month) + 1
}
func DiffTimeDays(time1, time2 time.Time) int {
sub := time1.Sub(time2)
return int(math.Ceil(math.Abs(sub.Hours() / 24.0)))
}