aboutsummaryrefslogtreecommitdiffstats
path: root/todolist
diff options
context:
space:
mode:
Diffstat (limited to 'todolist')
-rw-r--r--todolist/date_filter.go34
1 files changed, 18 insertions, 16 deletions
diff --git a/todolist/date_filter.go b/todolist/date_filter.go
index 13c3705..5a40e27 100644
--- a/todolist/date_filter.go
+++ b/todolist/date_filter.go
@@ -78,7 +78,6 @@ func (f *DateFilter) filterToExactDate(pivot time.Time) []*Todo {
return ret
}
-
func (f *DateFilter) filterToday(pivot time.Time) []*Todo {
return f.filterToExactDate(pivot)
}
@@ -101,12 +100,9 @@ func (f *DateFilter) filterTomorrow(pivot time.Time) []*Todo {
return f.filterToExactDate(pivot)
}
-func (f *DateFilter) filterThisWeek(pivot time.Time) []*Todo {
+func (f *DateFilter) filterBetweenDatesInclusive(begin, end time.Time) []*Todo {
var ret []*Todo
- begin := bod(f.FindSunday(pivot))
- end := begin.AddDate(0, 0, 7)
-
for _, todo := range f.Todos {
dueTime, _ := time.ParseInLocation("2006-01-02", todo.Due, f.Location)
if (begin.Before(dueTime) || begin.Equal(dueTime)) && end.After(dueTime) {
@@ -116,12 +112,17 @@ func (f *DateFilter) filterThisWeek(pivot time.Time) []*Todo {
return ret
}
-func (f *DateFilter) filterNextWeek(pivot time.Time) []*Todo {
- var ret []*Todo
+func (f *DateFilter) filterThisWeek(pivot time.Time) []*Todo {
- begin := f.FindSunday(pivot).AddDate(0, 0, 7)
+ begin := bod(f.FindSunday(pivot))
end := begin.AddDate(0, 0, 7)
+ return f.filterBetweenDatesInclusive(begin, end)
+}
+
+func (f *DateFilter) filterBetweenDatesExclusive(begin, end time.Time) []*Todo {
+ var ret []*Todo
+
for _, todo := range f.Todos {
dueTime, _ := time.ParseInLocation("2006-01-02", todo.Due, f.Location)
if begin.Before(dueTime) && end.After(dueTime) {
@@ -131,19 +132,20 @@ func (f *DateFilter) filterNextWeek(pivot time.Time) []*Todo {
return ret
}
+func (f *DateFilter) filterNextWeek(pivot time.Time) []*Todo {
+
+ begin := f.FindSunday(pivot).AddDate(0, 0, 7)
+ end := begin.AddDate(0, 0, 7)
+
+ return f.filterBetweenDatesExclusive(begin, end)
+}
+
func (f *DateFilter) filterLastWeek(pivot time.Time) []*Todo {
- var ret []*Todo
begin := f.FindSunday(pivot).AddDate(0, 0, -7)
end := begin.AddDate(0, 0, 7)
- for _, todo := range f.Todos {
- dueTime, _ := time.ParseInLocation("2006-01-02", todo.Due, f.Location)
- if begin.Before(dueTime) && end.After(dueTime) {
- ret = append(ret, todo)
- }
- }
- return ret
+ return f.filterBetweenDatesExclusive(begin, end)
}
func (f *DateFilter) filterOverdue(pivot time.Time) []*Todo {