ruby数字和日期

#ruby数字和数学运算

##数字方法

0.zero? #true 是否为0

0.0.zero? #true 是否为0

0.nonzero? #false 是否不为0

1.integer? #true 是否为整数

2.even? #true 是否为偶数

1.even? #false 

1.odd? #true 是否为奇数

1.1.ceil #2 进1取整

1.1.floor #1 舍弃取整

4.6.round #5 四舍五入

4.3.round #4

-1.1.to_i #-1 转换为整数

-2.abs #2 绝对值

-2.0 <=> 0 #-1

##Math模块 Math::PI #3.1415... π值

Math.sqrt(25.0) #5 平方根

Math.log10(100.00) #2 以10为底,100的对数

Math.log2(8) #3 以2为底,8的对数

###标准库中的BigDecimal类可以用于替代Float,如果想避免二进制浮点运算带来的舍入误差,它尤其有用:

d = 0.1

4*d - 3*d == d #false

require 'bigdecimal'

d1 = BigDecimal('0.1')

4*d1 - 3*d1 == d1 #true

###随机数: 用全局函数Kernel.rand产生随机数,如果不带参数,它返回一个大于等于0.0,小于等于1.0的伪随机浮点数。如果给定一个整形参数max,它返回大于等于0,小于等于max的伪随机数:

rand #0.964395...

rand(100) #36

##日期和时间

Time.now #2014-10-27 09:16:57 +0800 

Time.new #2014-10-27 09:17:15 +0800 

Time.local 2014, 10, 10 #2014-10-10 00:00:00 +0800 

Time.local 2014, 7, 8, 10, 11, 34 #2014-07-08 10:11:34 +0800 

Time.utc 2014, 7, 8, 10, 11, 34 #2014-07-08 10:11:34 UTC  UTC时间

Time.gm 2014, 7, 8, 10, 11, 34 #2014-07-08 10:11:34 UTC , GMT时间,等同于UTC

t = Time.utc 2000, 12, 31, 23, 59, 59

t.year #2000

t.month #12

t.day #31

t.wday #0 星期,0表示星期1

t.yday #366 一年中第几天

t.hour #23

t.min #59

t.sec #59

t.zone #UTC

values = t.to_a #[59, 59, 23, 31, 12, 2000, 0, 366, false, "UTC"] 

values[5] += 1

Time.utc *values #2001-12-31 23:59:59 UTC 

t.zone #UTC

t.utc? #true

t.localtime #2001-01-01 07:59:59 +0800 

t.zone #CST

t.utc? #false

t.gmtime #2000-12-31 23:59:59 UTC 

t.getlocal #2001-01-01 07:59:59 +0800 

t.getutc #2000-12-31 23:59:59 UTC 

t.sunday? #true

t.monday? #false

t.to_s #"2000-12-31 23:59:59 UTC" 

t.strftime('%Y-%m-%d %H:%M:%S') #"2000-12-31 23:59:59"

转载于:https://my.oschina.net/BpBhDzhTIE7Q/blog/337511

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值