package datetime import ( "time" ) // DaysInMonth retourne le nombre de jours dans le mois. func DaysInMonth(t time.Time) int { return daysInMonth(t.Year(), t.Month()) } // DaysInYear retourne le nombe de jours dans l’année. func DaysInYear(t time.Time) int { if IsBissextil(t) { return 366 } return 365 } // IsBissextil retourne vrai si la date est située dans une année bissextile. func IsBissextil(t time.Time) bool { return isYearBissextil(t.Year()) } // IsWeekend retourne vrai si la date est située dans le weekend. func IsWeekend(t time.Time) bool { d := t.Weekday() return d != time.Saturday && d != time.Sunday } // IsBeginOfMonth retourne vrai si la date est dans le premier jour du mois. func IsBeginOfMonth(t time.Time) bool { return t.Day() == 1 } // IsEndOfMonth retourne vrai si la date est dans le dernier jour du mois. func IsEndOfMonth(t time.Time) bool { return t.Day() == DaysInMonth(t) } // IsBeginOfYear retourne vrai si la date est dans le premier jour de l’année. func IsBeginOfYear(t time.Time) bool { return IsBeginOfMonth(t) && t.Month() == time.January } // IsEndOfYear retourne vrai si la date est dans le dernier jour de l’année. func IsEndOfYear(t time.Time) bool { return IsEndOfMonth(t) && t.Month() == time.December } // IsToday retourne vrai si la date est située aujourd’hui. func IsToday(t time.Time) bool { y, m, d := t.Date() y0, m0, d0 := time.Now().In(t.Location()).Date() return y == y0 && m == m0 && d == d0 } // IsTomorrow retourne vrai si la date est située demain. func IsTomorrow(t time.Time) bool { n := time.Now().In(t.Location()) y, m, d := t.Date() y0, m0, d0 := n.Date() if d > 1 { return y == y0 && m == m0 && d == d0+1 } if m > time.January { return y == y0 && m == m0+1 && IsEndOfMonth(n) } return y == y0+1 && IsEndOfYear(n) } // IsYesterday retourne vrai si la date est située hier. func IsYesterday(t time.Time) bool { n := time.Now().In(t.Location()) y, m, d := t.Date() y0, m0, d0 := n.Date() if d < DaysInMonth(t) { return y == y0 && m == m0 && d == d0-1 } if m < time.December { return y == y0 && m == m0-1 && IsBeginOfMonth(n) } return y == y0-1 && IsBeginOfYear(n) }