package utils

import "time"

func GetDayBegin() time.Time {
	t := time.Now()
	today, _ := time.Parse("2006-01-02", t.Format("2006-01-02"))
	return today
}

func GetDayEnd() time.Time {
	t := GetDayBegin()
	nextDay := t.AddDate(0, 0, 1)
	return nextDay
}

//获取传入的时间所在月份的第一天,即某月第一天的0点。如传入time.Now(), 返回当前月份的第一天0点时间。
func GetFirstDateOfMonth(d time.Time) time.Time {
	d = d.AddDate(0, 0, -d.Day()+1)
	return GetZeroTime(d)
}

//获取传入的时间所在月份的最后一天,即某月最后一天的23:59:59。如传入time.Now(), 返回当前月份的最后一天的23:59:59。
func GetNextMonthFirstDay(d time.Time) time.Time {
	d = GetFirstDateOfMonth(d).AddDate(0, 1, 0)
	return GetZeroTime(d)
}

//获取某一天的0点时间
func GetZeroTime(d time.Time) time.Time {
	return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, time.Local)
}

//获取某一天的23点59分59秒
func GetNextDayZeroTime(d time.Time) time.Time {
	return time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, 1)
}