flokati/util/util.go

55 lines
765 B
Go
Raw Normal View History

2016-01-11 06:18:52 +00:00
// vi:ts=4:sts=4:sw=4:noet:tw=72
2016-01-10 17:45:21 +00:00
package util
import (
"bytes"
2016-02-15 23:17:42 +00:00
"math/rand"
2016-01-10 17:45:21 +00:00
"strconv"
2016-02-15 23:17:42 +00:00
"time"
2016-01-10 17:45:21 +00:00
)
2016-02-15 23:17:42 +00:00
func ToInt(v interface{}) int {
switch v.(type) {
case int:
return v.(int)
case float64:
return int(v.(float64))
case string:
ret, _ := strconv.Atoi(v.(string))
return ret
default:
return 0
}
}
2016-01-10 17:45:21 +00:00
func NumberToString(n int, sep rune) string {
start := 0
var buf bytes.Buffer
s := strconv.Itoa(n)
if n < 0 {
start = 1
buf.WriteByte('-')
}
l := len(s)
ci := 3 - ((l - start) % 3)
if ci == 3 {
ci = 0
}
for i := start; i < l; i++ {
if ci == 3 {
buf.WriteRune(sep)
ci = 0
}
ci++
buf.WriteByte(s[i])
}
return buf.String()
}
2016-02-15 23:17:42 +00:00
func Random(min, max int) int {
rand.Seed(time.Now().Unix())
return rand.Intn(max-min) + min
}