Skip to content

Commit 9c21517

Browse files
committed
Merge pull request #3 from pankona/2_some_time_not_appear
[#2] fix time comparison to judge the time is later or not
2 parents dc99963 + 1f04ef7 commit 9c21517

File tree

2 files changed

+36
-60
lines changed

2 files changed

+36
-60
lines changed

main.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ func (time *Time) toString() string {
2626
}
2727
}
2828

29-
func departureTime(departure string) (int, int) {
29+
func (t1 *Time) isLaterThan(t2 Time) bool {
30+
return t1.hour > t2.hour || (t1.hour == t2.hour && t1.minute > t2.minute)
31+
}
32+
33+
func departureTime(departure string) Time {
3034
ret, _ := regexp.MatchString("^[0-9]{1,2}:[0-9]{1,2}$", departure)
3135
var hour int
3236
var minute int
@@ -49,7 +53,7 @@ func departureTime(departure string) (int, int) {
4953
hour = now.Hour()
5054
minute = now.Minute()
5155
}
52-
return hour, minute
56+
return Time{hour, minute}
5357
}
5458

5559
func getTimeTableUrl() string {
@@ -101,7 +105,7 @@ func main() {
101105
os.Exit(2)
102106
}
103107

104-
hour, minute := departureTime(departure)
108+
departureTime := departureTime(departure)
105109
timetable := createTimetable()
106110

107111
if isLast {
@@ -113,7 +117,7 @@ func main() {
113117
result := make([]string, 0, numOfResult)
114118
for i := 0; i < len(timetable); i++ {
115119
v := timetable[i]
116-
if v.minute > minute && v.hour >= hour {
120+
if v.isLaterThan(departureTime) {
117121
timeStr := v.toString()
118122
result = append(result, timeStr)
119123
if len(result) >= numOfResult {

main_test.go

+28-56
Original file line numberDiff line numberDiff line change
@@ -6,89 +6,61 @@ import (
66
)
77

88
func TestDepartureTime(t *testing.T) {
9-
hour, minutes := departureTime("10:30")
10-
expected_hour := 10
11-
expected_minutes := 30
12-
if hour != expected_hour {
13-
t.Errorf("got %v\nwant %v", hour, expected_hour)
14-
}
15-
if minutes != expected_minutes {
16-
t.Error("got %v\nwant %v", minutes, expected_minutes)
9+
deptime := departureTime("10:30")
10+
expected_time := Time{10, 30}
11+
if deptime != expected_time {
12+
t.Errorf("got %v\nwant %v", deptime, expected_time)
1713
}
1814
}
1915

2016
func TestDepartureTime2(t *testing.T) {
21-
hour, minutes := departureTime("0:0")
22-
expected_hour := 0
23-
expected_minutes := 0
24-
if hour != expected_hour {
25-
t.Errorf("got %v\nwant %v", hour, expected_hour)
26-
}
27-
if minutes != expected_minutes {
28-
t.Error("got %v\nwant %v", minutes, expected_minutes)
17+
deptime := departureTime("0:0")
18+
expected_time := Time{0, 0}
19+
if deptime != expected_time {
20+
t.Errorf("got %v\nwant %v", deptime, expected_time)
2921
}
3022
}
3123

3224
func TestDepartureTime3(t *testing.T) {
33-
hour, minutes := departureTime("00:00")
34-
expected_hour := 0
35-
expected_minutes := 0
36-
if hour != expected_hour {
37-
t.Errorf("got %v\nwant %v", hour, expected_hour)
38-
}
39-
if minutes != expected_minutes {
40-
t.Errorf("got %v\nwant %v", minutes, expected_minutes)
25+
deptime := departureTime("00:00")
26+
expected_time := Time{0, 0}
27+
if deptime != expected_time {
28+
t.Errorf("got %v\nwant %v", deptime, expected_time)
4129
}
4230
}
4331

4432
func TestDepartureTime4(t *testing.T) {
45-
hour, minutes := departureTime("23:59")
46-
expected_hour := 23
47-
expected_minutes := 59
48-
if hour != expected_hour {
49-
t.Errorf("got %v\nwant %v", hour, expected_hour)
50-
}
51-
if minutes != expected_minutes {
52-
t.Errorf("got %v\nwant %v", minutes, expected_minutes)
33+
deptime := departureTime("23:59")
34+
expected_time := Time{23, 59}
35+
if deptime != expected_time {
36+
t.Errorf("got %v\nwant %v", deptime, expected_time)
5337
}
5438
}
5539

5640
func TestDepartureTime5(t *testing.T) {
57-
hour, minutes := departureTime("44:30")
41+
deptime := departureTime("44:30")
5842
now := time.Now()
59-
expected_hour := now.Hour()
60-
expected_minutes := now.Minute()
61-
if hour != expected_hour {
62-
t.Errorf("got %v\nwant %v", hour, expected_hour)
63-
}
64-
if minutes != expected_minutes {
65-
t.Errorf("got %v\nwant %v", minutes, expected_minutes)
43+
expected_time := Time{now.Hour(), now.Minute()}
44+
if deptime != expected_time {
45+
t.Errorf("got %v\nwant %v", deptime, expected_time)
6646
}
6747
}
6848

6949
func TestDepartureTime6(t *testing.T) {
70-
hour, minutes := departureTime("24:30")
50+
deptime := departureTime("24:30")
7151
now := time.Now()
72-
expected_hour := now.Hour()
73-
expected_minutes := now.Minute()
74-
if hour != expected_hour {
75-
t.Errorf("got %v\nwant %v", hour, expected_hour)
76-
}
77-
if minutes != expected_minutes {
78-
t.Errorf("got %v\nwant %v", minutes, expected_minutes)
52+
expected_time := Time{now.Hour(), now.Minute()}
53+
if deptime != expected_time {
54+
t.Errorf("got %v\nwant %v", deptime, expected_time)
7955
}
8056
}
8157

8258
func TestDepartureTime7(t *testing.T) {
83-
hour, minutes := departureTime("12:60")
59+
deptime := departureTime("12:60")
8460
now := time.Now()
85-
expected_hour := now.Hour()
86-
expected_minutes := now.Minute()
87-
if hour != expected_hour {
88-
t.Errorf("got %v\nwant %v", hour, expected_hour)
89-
}
90-
if minutes != expected_minutes {
91-
t.Errorf("got %v\nwant %v", minutes, expected_minutes)
61+
expected_time := Time{now.Hour(), now.Minute()}
62+
if deptime != expected_time {
63+
t.Errorf("got %v\nwant %v", deptime, expected_time)
9264
}
9365
}
9466

0 commit comments

Comments
 (0)