اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

هنالك عدة طرق لإيجاد عدد الأيام بين كائنين من نوع Date، أبسطها كما يلي؛  (تعمل هذه الطريقة على الإصدار 1.8 من روبي وقد تختلف في الإصدار الجديد (الإصدار 2+)).
بعد أن نعين القيم للكائنين سوف نطرح الكائن الأول من الكائن الثاني كما في المثال التالي:

2.0.0-p195 :005 > require 'date'
 => true
2.0.0-p195 :006 >  a_date = Date.parse("25/12/2013")
 => #<Date: 2013-12-25 ((2456652j,0s,0n),+0s,2299161j)>
2.0.0-p195 :007 >  b_date = Date.parse("10/12/2013")
 => #<Date: 2013-12-10 ((2456637j,0s,0n),+0s,2299161j)>
2.0.0-p195 :008 > a_date-b_date
 => (15/1)

لاحظ أننا حصلنا على عدد كسري، ويمكنك تحويله إلى عدد صحيح عن طريق التابع to_i كما في المثال التالي:

2.0.0-p195 :009 > (a_date-b_date).to_i
 => 15

وهذه الطريقة تعمل أيضا على كائنات DateTime كما في المثال التالي:

2.0.0-p195 :017 >   a_date_time = DateTime.now
 => #<DateTime: 2013-12-31T12:23:03-08:00 ((2456658j,73383s,725757000n),-28800s,2299161j)>
2.0.0-p195 :018 > b_date_time = DateTime.now-20
 => #<DateTime: 2013-12-11T12:23:06-08:00 ((2456638j,73386s,69998000n),-28800s,2299161j)>
2.0.0-p195 :019 > a_date_time - b_date_time
 => (1727997655759/86400000000)
2.0.0-p195 :020 > (a_date_time - b_date_time).to_i
 => 19
2.0.0-p195 :021 > c_date_time = a_date_time-20
 => #<DateTime: 2013-12-11T12:23:03-08:00 ((2456638j,73383s,725757000n),-28800s,2299161j)>
2.0.0-p195 :022 > a_date_time - c_date_time
 => (20/1)
2.0.0-p195 :023 > (a_date_time - c_date_time).to_i
 => 20


المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...