mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 06:09:53 +05:00
added last day of month function
This commit is contained in:
@@ -518,3 +518,18 @@ func CastIfToString(iface interface{}) (strVal string, casts bool) {
|
||||
}
|
||||
return strVal, casts
|
||||
}
|
||||
|
||||
func GetEndOfMonth(ref time.Time) time.Time {
|
||||
if ref.IsZero() {
|
||||
return time.Now()
|
||||
}
|
||||
year, month, _ := ref.Date()
|
||||
if month == time.December {
|
||||
year++
|
||||
month = time.January
|
||||
} else {
|
||||
month++
|
||||
}
|
||||
eom := time.Date(year, month, 1, 0, 0, 0, 0, ref.Location())
|
||||
return eom.Add(-time.Second)
|
||||
}
|
||||
|
||||
@@ -600,3 +600,31 @@ func TestCastIfToString(t *testing.T) {
|
||||
t.Errorf("Received: %+v", sOut)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEndOfMonth(t *testing.T) {
|
||||
eom := GetEndOfMonth(time.Date(2016, time.February, 5, 10, 1, 2, 3, time.UTC))
|
||||
expected := time.Date(2016, time.February, 29, 23, 59, 59, 0, time.UTC)
|
||||
if !eom.Equal(expected) {
|
||||
t.Errorf("Expected %v was %v", expected, eom)
|
||||
}
|
||||
eom = GetEndOfMonth(time.Date(2015, time.February, 5, 10, 1, 2, 3, time.UTC))
|
||||
expected = time.Date(2015, time.February, 28, 23, 59, 59, 0, time.UTC)
|
||||
if !eom.Equal(expected) {
|
||||
t.Errorf("Expected %v was %v", expected, eom)
|
||||
}
|
||||
eom = GetEndOfMonth(time.Date(2016, time.January, 31, 10, 1, 2, 3, time.UTC))
|
||||
expected = time.Date(2016, time.January, 31, 23, 59, 59, 0, time.UTC)
|
||||
if !eom.Equal(expected) {
|
||||
t.Errorf("Expected %v was %v", expected, eom)
|
||||
}
|
||||
eom = GetEndOfMonth(time.Date(2016, time.December, 31, 10, 1, 2, 3, time.UTC))
|
||||
expected = time.Date(2016, time.December, 31, 23, 59, 59, 0, time.UTC)
|
||||
if !eom.Equal(expected) {
|
||||
t.Errorf("Expected %v was %v", expected, eom)
|
||||
}
|
||||
eom = GetEndOfMonth(time.Date(2016, time.July, 31, 23, 59, 59, 0, time.UTC))
|
||||
expected = time.Date(2016, time.July, 31, 23, 59, 59, 0, time.UTC)
|
||||
if !eom.Equal(expected) {
|
||||
t.Errorf("Expected %v was %v", expected, eom)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user