DDR爱好者之家 Design By 杰米
年(2位)+一年中的第几天(3位)+指定位数随机数
//生成单号 //06123xxxxx //sum 最少10位,sum 表示全部单号位数 func MakeYearDaysRand(sum int) string { //年 strs := time.Now().Format("06") //一年中的第几天 days := strconv.Itoa(GetDaysInYearByThisYear()) count := len(days) if count < 3 { //重复字符0 days = strings.Repeat("0", 3-count) + days } //组合 strs += days //剩余随机数 sum = sum - 5 if sum < 1 { sum = 5 } //0~9999999的随机数 ran := GetRand() pow := math.Pow(10, float64(sum)) - 1 //fmt.Println("sum=>", sum) //fmt.Println("pow=>", pow) result := strconv.Itoa(ran.Intn(int(pow))) count = len(result) //fmt.Println("result=>", result) if count < sum { //重复字符0 result = strings.Repeat("0", sum-count) + result } //组合 strs += result return strs } //年中的第几天 func GetDaysInYearByThisYear() int { now := time.Now() total := 0 arr := []int{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} y, month, d := now.Date() m := int(month) for i := 0; i < m-1; i++ { total = total + arr[i] } if (y%400 == 0 || (y%4 == 0 && y%100 != 0)) && m > 2 { total = total + d + 1 } else { total = total + d } return total; }
补充:基于GO语言实现的支持高并发订单号生成函数
1.固定24位长度订单号,毫秒+进程id+序号。
2.同一毫秒内只要不超过一万次并发,则订单号不会重复。
github地址:https://github.com/w3liu/go-common/blob/master/number/ordernum/ordernum.go
package ordernum import ( "fmt" "github.com/w3liu/go-common/constant/timeformat" "os" "sync/atomic" "time" ) var num int64 //生成24位订单号 //前面17位代表时间精确到毫秒,中间3位代表进程id,最后4位代表序号 func Generate(t time.Time) string { s := t.Format(timeformat.Continuity) m := t.UnixNano()/1e6 - t.UnixNano()/1e9*1e3 ms := sup(m, 3) p := os.Getpid() % 1000 ps := sup(int64(p), 3) i := atomic.AddInt64(&num, 1) r := i % 10000 rs := sup(r, 4) n := fmt.Sprintf("%s%s%s%s", s, ms, ps, rs) return n } //对长度不足n的数字前面补0 func sup(i int64, n int) string { m := fmt.Sprintf("%d", i) for len(m) < n { m = fmt.Sprintf("0%s", m) } return m }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年05月14日
2024年05月14日
- 《饿殍:明末千里行》行将就木的日月山河
- 【古典音乐】卡拉扬《马勒·大地之歌》2013[FLAC+CUE/整轨]
- KOKIA《EVOLVEtoLOVE20周年精逊4CD【FLAC】
- 李娜(昌圣法师)-《唱经给你听.念佛礼仪》[APE]
- 前《龙腾世纪》编剧谈EA用AI做游戏:他们的兴奋是绝望的哀嚎
- 世界公认最丑的鱼登热搜 科普:其实是人为被迫毁容
- 网易新作合约要求测试者不准说坏话:现已撤回并道歉
- 【原神】V4.6攻略 | 全角色突破用讨伐材料汇总
- 【原神】V4.6攻略 | 4.6版本下半抽卡建议
- 【原神】V4.6攻略 | 那维莱特的一条龙机制介绍、养成及配队
- 郑智化.1995-游戏人间【飞碟】【WAV+CUE】
- 群星.1999-唱好香港【STAREAST】【WAV+CUE】
- 美宝.2013-从目的地出发【金牌大风】【WAV+CUE】
- 新生 New Life
- 站长 Chief of Station