`

给类对象添加一个随机生成序号

 
阅读更多
module SerialNumber
  def self.included(base)
     base.extend(ClassMethods)
  end
 module ClassMethods
  def create_sn
    year_code=%w{A B C D E F G H I J K}
    month_code=%w{1 2 3 4 5 6 7 8 9 A B C D E F}
    day_code=%w{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}
    year_sn = year_code[Time.now.year-2014] # 1 bit
    month_sn = month_code[Time.now.month-1] # 1 bit
    day_sn = day_code[Time.now.day] # 1 bits
    sec_sn = (Time.now.to_i.to_s)[-5..-1] # 5 bits
    millisecond_sn = Time.now.strftime("%3N").to_s # 3 bits
    #microsecond_sn = Time.now.strftime("%6N").to_s # 6 bits
    rand_sn = rand(99).to_s.rjust(2,"0") #2 bits
    year_sn+month_sn+day_sn+sec_sn+millisecond_sn+rand_sn # 13 bits
  end
 end
end



class Order < Base
  include SerialNumber
end


order = Order.new
order.code = order.class.create_sn
order.save

0
1
分享到:
评论

相关推荐

    gallery海报位置随机变

    在IT行业中,设计一个"gallery海报位置随机变"的功能涉及到前端开发、数据处理以及用户交互等多个方面的技术。这里,我们将详细探讨这个功能背后的原理、实现方法以及与之相关的知识点。 首先,"gallery海报位置...

    超级有影响力霸气的Java面试题大全文档

    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 18、error和exception有什么区别?  error 表示恢复...

    搜狐&&美团旅行面试题.docx

    - 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 - 工厂方法模式:定义创建产品对象而不指定其具体类。 - 抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而无需指定它们的具体类。 -...

    银行排队叫号系统演示 C++

    2. **生成客户**:按照一定的随机规则(例如均匀分布或泊松过程)生成到达的客户,将他们添加到队列中。 3. **分配服务**:检查是否有空闲窗口且队列非空。如果有,取出队首客户分配给空闲窗口,并更新客户和服务...

    课堂点名(Winform小系统)(界面+XML取数据)

    系统会为每个学生分配一个唯一的标识(比如序号),然后生成一个随机的序号来选取学生。为了保证公平性,这个过程应该是无偏的,即每个学生被选中的概率相同。 此外,系统的编辑功能可能涉及到数据验证,以确保输入...

    js生成Guid序列号

    通过将`Math.random().toString(36).substring(2, 36)`生成一个随机的32位16进制字符串,然后添加短横线。这种方法简单快速,但在大量并发情况下可能会出现重复。 ```javascript function generateSimpleGUID() { ...

    ACCESS数据库编号自动添加.rar

    自动编号字段是Access中的一种特殊数据类型,它会自动为新插入的记录生成一个唯一的、连续的整数。这在处理大量数据时非常有用,因为它消除了手动输入编号的需要,同时也确保了每个记录的唯一性。在创建表时,我们...

    QT图形实时显示测试代码(可根据值改变)

    4. **值的生成与设置**:在上述`newRandomValue()`函数中,你可以生成一个随机值或从传感器等外部数据源获取值,然后将其传递给每个`ValueGraphItem`。 5. **布局与显示**:将`ValueGraphItem`实例添加到场景中,并...

    C#模拟驾照考试,功能很简单,可做学习参考

    - **试题类**:每个试题可以表示为一个类,包含问题、答案和分数等属性。 - **随机数生成**:使用`System.Random`类生成试卷中的随机试题序号。 - **选择题处理**:对于多选题或单选题,可以使用数组或列表存储...

    js 数组随机字符串(广告不重复)

    在JavaScript中生成随机字符串通常会使用`Math.random()`函数来生成一个0到1之间的随机数,然后结合其他字符串操作方法来构造最终的随机字符串。例如,可以通过随机数与字母表结合来生成随机字母字符串,或者进一步...

    C#绘制各种图形代码.docx

    它接受一个整数种子作为输入,通过`Random`类生成不同的RGB值(r、g、b)来创建一种新的颜色。颜色的范围被限制在0到230之间(红色和绿色)和0到235之间(蓝色),确保生成的颜色不会过于暗淡。 2. `DrawRectangle...

    java应用程序——纸牌游戏发牌实现

    - 创建一个包含所有牌的`LinkedList`列表,并添加大小王。 - 创建一个长度为玩家数量加1的`TreeSet`数组,其中第0个索引位置用于存放剩余牌。 - 使用随机算法从`LinkedList`中移除牌并将其添加到对应的玩家集合中...

    计算机基础试卷自动生成系统的开发及应用.pdf

    系统的目标是创建一个完整且标准化的计算机基础试题库,能够按照预设要求自动生成试卷。它提供了两种生成试卷的方式: 1.1.1 完全自动生成方式:用户只需要提供试卷所需的试题类型(如选择题、填空题、判断题等)、...

    java面试题集合,非常齐全

    例如,创建一个`Car`类,只保留启动、停止等关键行为,忽略引擎的工作原理。 - **继承**:继承允许子类从父类继承属性和方法,减少重复代码,增强代码复用。例如,`SportsCar`继承自`Car`,可以获取`Car`的所有属性...

    dreamweaver上PHP网站开发相关插件

    Object 对象插件 Preload Images with Status Bar and 1.1.0 预载图片,有进度显示,完成以后跳转到新页面,只支持静态页。...随机显示记录,当你刷新一次页面就重新显示一个记录。 Visit counter.mxp

    简单的九宫格转盘文字抽奖js代码

    1. 随机选择一个中奖序号:利用`Math.random()`生成一个随机数,根据这个数来确定转盘停止的奖项。 2. 开始旋转动画:通过修改CSS的`transform`属性,使转盘元素旋转一定角度,同时可能配合`transition`属性来添加...

    PHP动态网站开发插件

    网站开发相关插件下载 声明:以下插件均搜集于网上,完全免费提供给所有网友...随机显示记录,当你刷新一次页面就重新显示一个记录。 Visit counter.mxp Download 点击下载 为你创建一个网页计数器,可以防止刷新。

    2021-2022计算机二级等级考试试题及答案No.11168.docx

    其中 `RND(1)` 生成一个0到1之间的随机小数,乘以100后得到0到100之间的随机数,再通过 `INT()` 函数取整,因此结果范围为 [0, 99]。 #### 题目3:Java类成员访问 - **知识点**:本题考查静态方法与实例方法的调用...

    二十一点

    在Java编程中,创建这样一个游戏涉及到多个关键知识点,包括面向对象编程、类设计、随机数生成、条件判断以及用户交互等。 首先,我们从面向对象编程的角度来看,游戏中的主要实体可以抽象为几个类:`Player`(玩家...

Global site tag (gtag.js) - Google Analytics