Skip to content

Commit c4e0118

Browse files
committed
Add Before method to Time
1 parent 86ef269 commit c4e0118

File tree

2 files changed

+61
-10
lines changed

2 files changed

+61
-10
lines changed

time.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,18 @@ func (t Time) ToDate() time.Time {
7272

7373
// After checks if instance of t is after tm
7474
func (t Time) After(tm Time) bool {
75-
if t.Hour > tm.Hour {
76-
return true
75+
if t.Hour == tm.Hour{
76+
return t.Minute > tm.Minute
7777
}
78-
if t.Hour < tm.Hour{
79-
return false
78+
return t.Hour > tm.Hour
79+
}
80+
81+
// After checks if instance of t is before tm
82+
func (t Time) Before(tm Time) bool {
83+
if t.Hour == tm.Hour{
84+
return t.Minute < tm.Minute
8085
}
81-
return t.Minute > tm.Minute
86+
return t.Hour < tm.Hour
8287
}
8388

8489
// Subtract returns difference between t and t2 in minutes

time_test.go

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ func TestAfter(t *testing.T) {
9191
isAfter bool
9292
}{
9393
{
94-
name: "Hours after",
94+
name: "Hour after",
9595
t1: Time{23, 59, true},
9696
t2: Time{22, 59, true},
9797
isAfter: true,
9898
},
9999
{
100-
name: "Minutes after",
100+
name: "Minute after",
101101
t1: Time{23, 59, true},
102102
t2: Time{23, 45, true},
103103
isAfter: true,
@@ -109,13 +109,13 @@ func TestAfter(t *testing.T) {
109109
isAfter: false,
110110
},
111111
{
112-
name: "Before",
113-
t1: Time{23, 59, true},
112+
name: "Hour before",
113+
t1: Time{22, 59, true},
114114
t2: Time{23, 59, true},
115115
isAfter: false,
116116
},
117117
{
118-
name: "Before",
118+
name: "Minute before",
119119
t1: Time{11, 59, true},
120120
t2: Time{23, 59, true},
121121
isAfter: false,
@@ -130,6 +130,52 @@ func TestAfter(t *testing.T) {
130130
}
131131
}
132132

133+
func TestBefore(t *testing.T) {
134+
cases := []struct {
135+
name string
136+
t1, t2 Time
137+
isBefore bool
138+
}{
139+
{
140+
name: "Hour after",
141+
t1: Time{23, 59, true},
142+
t2: Time{22, 59, true},
143+
isBefore: false,
144+
},
145+
{
146+
name: "Minute after",
147+
t1: Time{23, 59, true},
148+
t2: Time{23, 45, true},
149+
isBefore: false,
150+
},
151+
{
152+
name: "Equal",
153+
t1: Time{23, 59, true},
154+
t2: Time{23, 59, true},
155+
isBefore: false,
156+
},
157+
{
158+
name: "Hour before",
159+
t1: Time{22, 59, true},
160+
t2: Time{23, 59, true},
161+
isBefore: true,
162+
},
163+
{
164+
name: "Minute before",
165+
t1: Time{11, 59, true},
166+
t2: Time{23, 59, true},
167+
isBefore: true,
168+
},
169+
}
170+
for _, tt := range cases {
171+
t.Run(tt.name, func(t *testing.T) {
172+
if tt.t1.Before(tt.t2) != tt.isBefore {
173+
t.Errorf("expected isBefore %v, got %v", tt.isBefore, tt.t1.Before(tt.t2))
174+
}
175+
})
176+
}
177+
}
178+
133179
func TestSubtract(t *testing.T) {
134180
cases := []struct {
135181
name string

0 commit comments

Comments
 (0)