goBlockchainDataAnalysis/dateAnalysis.go
dateAnalysis.goRaw
1package main
2
3import (
4 "fmt"
5 "strconv"
6 "strings"
7 "time"
8
9 "gopkg.in/mgo.v2/bson"
10)
11
12func timeToDate(blockTime int64) string {
13 stringTime := strconv.FormatInt(blockTime, 10)
14 i, err := strconv.ParseInt(stringTime, 10, 64)
15 if err != nil {
16 panic(err)
17 }
18 tm := time.Unix(i, 0)
19 //fmt.Println(tm)
20 stringDate := tm.String()
21 //fmt.Println(stringDate)
22 return stringDate
23}
24func hourAnalysis(e EdgeModel, blockTime int64) {
25 //fmt.Println(blockTime)
26 date := timeToDate(blockTime)
27 date_hour := strings.Split(date, " ")[1]
28 hour := strings.Split(date_hour, ":")[0]
29
30 hourCount := HourCountModel{}
31 err := hourCountCollection.Find(bson.M{"hour": hour}).One(&hourCount)
32 if err != nil {
33 //date not yet in DB
34 var hourCount HourCountModel
35 hourCount.Hour = hour
36 hourCount.Count = 1
37 err = hourCountCollection.Insert(hourCount)
38 check(err)
39 } else {
40 hourCount.Count++
41 err = hourCountCollection.Update(bson.M{"hour": hour}, &hourCount)
42 check(err)
43 }
44}
45func dateAnalysis(e EdgeModel, blockTime int64) {
46 fmt.Println(blockTime)
47 date := timeToDate(blockTime)
48
49 dateCount := DateCountModel{}
50 err := dateCountCollection.Find(bson.M{"date": date}).One(&dateCount)
51 if err != nil {
52 //date not yet in DB
53 var dateCount DateCountModel
54 dateCount.Date = date
55 dateCount.Time = blockTime
56 dateCount.Count = 1
57 err = dateCountCollection.Insert(dateCount)
58 check(err)
59 } else {
60 dateCount.Count++
61 err = dateCountCollection.Update(bson.M{"date": date}, &dateCount)
62 check(err)
63 }
64}