التابع round‎ الخاص بالصنف Time في روبي

من موسوعة حسوب

يُقرّب التابع round الثواني الكسرية وفق دقة معينة من المنازل العشرية (0 هو القيمة الافتراضية). ثم يُعيد توقيتا جديدًا.

يجب أن يكون الوسيط ndigits (انظر فقرة البنية العامة) مساويا للقيمة 0 أو عددًا صحيحًا أو موجبًا.

البنية العامة

round([ndigits]) new_time

المعاملات

ndigits‎

يحدد عدد المنازل العشرية

القيمة المُعادة

يُعيد توقيتا جديدًا.

أمثلة

مثال على استخدام التابع round‎:

require 'time'
t = Time.utc(2010,3,30, 5,43,"25.123456789".to_r)
p t.iso8601(10)           #=> "2010-03-30T05:43:25.1234567890Z"
p t.round.iso8601(10)     #=> "2010-03-30T05:43:25.0000000000Z"
p t.round(0).iso8601(10)  #=> "2010-03-30T05:43:25.0000000000Z"
p t.round(1).iso8601(10)  #=> "2010-03-30T05:43:25.1000000000Z"
p t.round(2).iso8601(10)  #=> "2010-03-30T05:43:25.1200000000Z"
p t.round(3).iso8601(10)  #=> "2010-03-30T05:43:25.1230000000Z"
p t.round(4).iso8601(10)  #=> "2010-03-30T05:43:25.1235000000Z"
p t.round(5).iso8601(10)  #=> "2010-03-30T05:43:25.1234600000Z"
p t.round(6).iso8601(10)  #=> "2010-03-30T05:43:25.1234570000Z"
p t.round(7).iso8601(10)  #=> "2010-03-30T05:43:25.1234568000Z"
p t.round(8).iso8601(10)  #=> "2010-03-30T05:43:25.1234567900Z"
p t.round(9).iso8601(10)  #=> "2010-03-30T05:43:25.1234567890Z"
p t.round(10).iso8601(10) #=> "2010-03-30T05:43:25.1234567890Z"
t = Time.utc(1999,12,31, 23,59,59)
p((t + 0.4).round.iso8601(3))    #=> "1999-12-31T23:59:59.000Z"
p((t + 0.49).round.iso8601(3))   #=> "1999-12-31T23:59:59.000Z"
p((t + 0.5).round.iso8601(3))    #=> "2000-01-01T00:00:00.000Z"
p((t + 1.4).round.iso8601(3))    #=> "2000-01-01T00:00:00.000Z"
p((t + 1.49).round.iso8601(3))   #=> "2000-01-01T00:00:00.000Z"
p((t + 1.5).round.iso8601(3))    #=> "2000-01-01T00:00:01.000Z"
t = Time.utc(1999,12,31, 23,59,59)
p (t + 0.123456789).round(4).iso8601(6)  #=> "1999-12-31T23:59:59.123500Z"‎

انظر أيضا

  • التابع nsec: يُعيد التابع nsec عدد النانوثواني المقابل للتوقيت.

مصادر