Skip to content

Commit cbbd1bf

Browse files
committed
ch4: fix exercise4.10
1 parent 7c745cc commit cbbd1bf

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

ch4/exercise4.10/main.go

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,42 @@ import (
66
"os"
77
"time"
88

9-
"gopl/ch4/github"
9+
"github.com/linehk/gopl/ch4/github"
10+
)
11+
12+
type class string
13+
14+
const (
15+
LTOM class = "less than one month"
16+
MTOM class = "more than one month"
17+
LTOY class = "less than one year"
18+
MTOY class = "more than one year"
1019
)
1120

1221
func main() {
13-
date := os.Args[1]
14-
result, err := github.SearchIssues(os.Args[2:])
22+
result, err := github.SearchIssues(os.Args[1:])
1523
if err != nil {
1624
log.Fatal(err)
1725
}
18-
fmt.Printf("%d issues:\n", result.TotalCount)
26+
27+
issueClass := make(map[class][]github.Issue)
1928
for _, item := range result.Items {
29+
item := *item
2030
y, m, _ := item.CreatedAt.Date()
21-
ly, lm, _ := time.Now().Date()
22-
if date == "LTAM" {
23-
if lm-m <= time.Month(1) {
24-
fmt.Printf("%v\n", item.CreatedAt)
25-
}
26-
}
27-
if date == "LTAY" {
28-
if ly-y <= 1 {
29-
fmt.Printf("%v\n", item.CreatedAt)
30-
}
31-
}
32-
if date == "MTOY" {
33-
if ly-y >= 1 {
34-
fmt.Printf("%v\n", item.CreatedAt)
35-
}
31+
cy, cm, _ := time.Now().Date()
32+
switch {
33+
case cm-m <= time.Month(1):
34+
issueClass[LTOM] = append(issueClass[LTOM], item)
35+
case cm-m > time.Month(1):
36+
issueClass[MTOM] = append(issueClass[MTOM], item)
37+
case cy-y <= 1:
38+
issueClass[LTOY] = append(issueClass[LTOY], item)
39+
case cy-y > 1:
40+
issueClass[MTOY] = append(issueClass[MTOY], item)
3641
}
3742
}
43+
44+
for class, issues := range issueClass {
45+
fmt.Printf("class: %s, issues: %v\n", class, issues)
46+
}
3847
}

0 commit comments

Comments
 (0)