|
@@ -23,13 +23,11 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-// 随机数种子
|
|
|
-var rnd = rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
|
-
|
|
|
func GetRandString(size int) string {
|
|
|
allLetterDigit := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "!", "@", "#", "$", "%", "^", "&", "*"}
|
|
|
randomSb := ""
|
|
|
digitSize := len(allLetterDigit)
|
|
|
+ rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
|
for i := 0; i < size; i++ {
|
|
|
randomSb += allLetterDigit[rnd.Intn(digitSize)]
|
|
|
}
|
|
@@ -40,6 +38,7 @@ func GetRandStringNoSpecialChar(size int) string {
|
|
|
allLetterDigit := []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
|
|
|
randomSb := ""
|
|
|
digitSize := len(allLetterDigit)
|
|
|
+ rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
|
for i := 0; i < size; i++ {
|
|
|
randomSb += allLetterDigit[rnd.Intn(digitSize)]
|
|
|
}
|
|
@@ -72,71 +71,11 @@ func MD5(data string) string {
|
|
|
return hex.EncodeToString(m[:])
|
|
|
}
|
|
|
|
|
|
-// HmacMd5 HmacMd5加密
|
|
|
-func HmacMd5(key, data string) string {
|
|
|
- h := hmac.New(md5.New, []byte(key))
|
|
|
- h.Write([]byte(data))
|
|
|
- return hex.EncodeToString(h.Sum([]byte("")))
|
|
|
-}
|
|
|
-
|
|
|
-// 获取数字随机字符
|
|
|
-func GetRandDigit(n int) string {
|
|
|
- return fmt.Sprintf("%0"+strconv.Itoa(n)+"d", rnd.Intn(int(math.Pow10(n))))
|
|
|
-}
|
|
|
-
|
|
|
-// 获取随机数
|
|
|
-func GetRandNumber(n int) int {
|
|
|
- return rnd.Intn(n)
|
|
|
-}
|
|
|
-
|
|
|
-func GetRandInt(min, max int) int {
|
|
|
- if min >= max || min == 0 || max == 0 {
|
|
|
- return max
|
|
|
- }
|
|
|
- return rand.Intn(max-min) + min
|
|
|
-}
|
|
|
-
|
|
|
func GetToday(format string) string {
|
|
|
today := time.Now().Format(format)
|
|
|
return today
|
|
|
}
|
|
|
|
|
|
-// 获取今天剩余秒数
|
|
|
-func GetTodayLastSecond() time.Duration {
|
|
|
- today := GetToday(FormatDate) + " 23:59:59"
|
|
|
- end, _ := time.ParseInLocation(FormatDateTime, today, time.Local)
|
|
|
- return time.Duration(end.Unix()-time.Now().Local().Unix()) * time.Second
|
|
|
-}
|
|
|
-
|
|
|
-// 处理出生日期函数
|
|
|
-func GetBrithDate(idcard string) string {
|
|
|
- l := len(idcard)
|
|
|
- var s string
|
|
|
- if l == 15 {
|
|
|
- s = "19" + idcard[6:8] + "-" + idcard[8:10] + "-" + idcard[10:12]
|
|
|
- return s
|
|
|
- }
|
|
|
- if l == 18 {
|
|
|
- s = idcard[6:10] + "-" + idcard[10:12] + "-" + idcard[12:14]
|
|
|
- return s
|
|
|
- }
|
|
|
- return GetToday(FormatDate)
|
|
|
-}
|
|
|
-
|
|
|
-// 处理性别
|
|
|
-func WhichSexByIdcard(idcard string) string {
|
|
|
- var sexs = [2]string{"女", "男"}
|
|
|
- length := len(idcard)
|
|
|
- if length == 18 {
|
|
|
- sex, _ := strconv.Atoi(string(idcard[16]))
|
|
|
- return sexs[sex%2]
|
|
|
- } else if length == 15 {
|
|
|
- sex, _ := strconv.Atoi(string(idcard[14]))
|
|
|
- return sexs[sex%2]
|
|
|
- }
|
|
|
- return "男"
|
|
|
-}
|
|
|
-
|
|
|
// 截取小数点后几位
|
|
|
func SubFloatToString(f float64, m int) string {
|
|
|
n := strconv.FormatFloat(f, 'f', -1, 64)
|