@@ -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
1221func 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