ruby数字と日付

1891 ワード

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"