package module import ( "crypto/md5" "encoding/hex" // "encoding/json" // "errors" // "fmt" // simple "github.com/bitly/go-simplejson" // "github.com/go-redis/redis" // "github.com/phyer/core" // "math" // "math/rand" // "os" "reflect" "runtime" "strconv" // "strings" // "sync" // "time" // // "github.com/phyer/core/utils" // logrus "github.com/sirupsen/logrus" ) func NextPeriod(curPeriod string, idx int) string { list := []string{ "1m", "3m", "5m", "15m", "30m", "1H", "2H", "4H", "6H", "12H", "1D", "2D", "5D", } nextPer := "" for i := 0; i < len(list)-1; i++ { if list[i] == curPeriod { nextPer = list[i+idx] } } return nextPer } func pow(x, n int) int { ret := 1 // 结果初始为0次方的值,整数0次方为1。如果是矩阵,则为单元矩阵。 for n != 0 { if n%2 != 0 { ret = ret * x } n /= 2 x = x * x } return ret } // 获取当前函数名字 func GetFuncName() string { pc := make([]uintptr, 1) runtime.Callers(2, pc) f := runtime.FuncForPC(pc[0]) return f.Name() } func Md5V(str string) string { h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) } func ToString(val interface{}) string { valstr := "" if reflect.TypeOf(val).Name() == "string" { valstr = val.(string) } else if reflect.TypeOf(val).Name() == "float64" { valstr = strconv.FormatFloat(val.(float64), 'f', 1, 64) } else if reflect.TypeOf(val).Name() == "int64" { valstr = strconv.FormatInt(val.(int64), 10) } else if reflect.TypeOf(val).Name() == "int" { valstr = strconv.Itoa((val).(int)) } return valstr } func ToInt64(val interface{}) int64 { vali := int64(0) if reflect.TypeOf(val).Name() == "string" { vali, _ = strconv.ParseInt(val.(string), 10, 64) } else if reflect.TypeOf(val).Name() == "float64" { vali = int64(val.(float64)) } else if reflect.TypeOf(val).Name() == "int" { vali = int64(val.(int)) } return vali } func ToFloat64(val interface{}) float64 { valf := float64(0) if reflect.TypeOf(val).Name() == "string" { valf, _ = strconv.ParseFloat(val.(string), 64) } else if reflect.TypeOf(val).Name() == "float64" { valf = val.(float64) } else if reflect.TypeOf(val).Name() == "int64" { valf = float64(val.(int64)) } return valf }