You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

89 lines
2.1 KiB

package main
import (
"fmt"
"strconv"
"time"
"gopkg.in/mgo.v2/bson"
)
func dateBeforeThan(dateA time.Time, dateB time.Time) bool {
return dateA.Before(dateB)
}
func map24hours() map[int]int {
h := make(map[int]int)
for i := 0; i < 24; i++ {
h[i] = 0
}
return h
}
func decomposeDate(blockTime int64) (int, int, int, int) {
/*i, err := strconv.ParseInt(blockTime, 10, 64)
if err != nil {
panic(err)
}*/
i := blockTime
year := time.Unix(i, 0).Year()
month := time.Unix(i, 0).Month()
day := time.Unix(i, 0).Day()
hour := time.Unix(i, 0).Hour()
return year, int(month), day, hour
}
func unixTimeToTime(blockTime int64) time.Time {
return time.Unix(blockTime, 0)
}
func timeToDate(blockTime int64) string {
stringTime := strconv.FormatInt(blockTime, 10)
i, err := strconv.ParseInt(stringTime, 10, 64)
if err != nil {
panic(err)
}
tm := time.Unix(i, 0)
//fmt.Println(tm)
stringDate := tm.String()
//fmt.Println(stringDate)
return stringDate
}
func hourAnalysis(e EdgeModel, blockTime int64) {
//fmt.Println(blockTime)
/*date := timeToDate(blockTime)
dateHour := strings.Split(date, " ")[1]
hourString := strings.Split(dateHour, ":")[0]*/
_, _, _, hour := decomposeDate(blockTime)
hourCount := ChartCountModel{}
err := hourCountCollection.Find(bson.M{"hour": hour}).One(&hourCount)
if err != nil {
//date not yet in DB
var hourCount ChartCountModel
hourCount.Elem = hour
hourCount.Count = 1
err = hourCountCollection.Insert(hourCount)
check(err)
} else {
hourCount.Count++
err = hourCountCollection.Update(bson.M{"hour": hour}, &hourCount)
check(err)
}
}
func dateAnalysis(e EdgeModel, blockTime int64) {
fmt.Println(blockTime)
date := timeToDate(blockTime)
dateCount := DateCountModel{}
err := dateCountCollection.Find(bson.M{"date": date}).One(&dateCount)
if err != nil {
//date not yet in DB
var dateCount DateCountModel
dateCount.Date = date
dateCount.Time = blockTime
dateCount.Count = 1
err = dateCountCollection.Insert(dateCount)
check(err)
} else {
dateCount.Count++
err = dateCountCollection.Update(bson.M{"date": date}, &dateCount)
check(err)
}
}