Ruby Academy · درس

الحسابات الزمنية

المدد والفروق

الدرس 3 من 413 خطوة

الحسابات الزمنية درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

إضافة ثوانٍ إلى قيمة Time

تعمل العمليات الحسابية على Time باستخدام الثواني. تؤدي إضافة رقم إلى قيمة Time إلى تقديمها بعدد الثواني ذلك.

t = Time.new(2026, 5, 30, 12, 0, 0)
later = t + 60
puts(later.min)

طرح الثواني

يؤدي طرح رقم إلى إرجاع قيمة Time إلى الوراء بعدد الثواني ذلك.

t = Time.new(2026, 5, 30, 12, 0, 0)
earlier = t - 3600
puts(earlier.hour)

مدد زمنية واضحة

عبّر عن المدد الزمنية باستخدام حاصل ضرب الثواني لكي يكون المقصود واضحًا: 60 ثانية، و60 * 60 ساعة، و24 * 60 * 60 يوم.

day = 24 * 60 * 60
t = Time.new(2026, 5, 30)
puts((t + day).day)

الفرق بين وقتين

يؤدي طرح قيمة Time من أخرى إلى إعطائك قيمة Float تمثّل عدد الثواني بينهما.

a = Time.new(2026, 5, 30, 12, 0, 0)
b = Time.new(2026, 5, 30, 13, 30, 0)
diff = b - a
puts(diff)
puts(diff / 60)

تحويل مدة زمنية

حوّل فرق الثواني الخام إلى ساعات ودقائق باستخدام الحساب الصحيح.

secs = 5400
puts("#{secs / 3600}h #{(secs % 3600) / 60}m")

الحساب على Date بالأيام

على خلاف Time، يضيف صنف Date القيم بوحدة الأيام. تؤدي إضافة عدد صحيح إلى التقدم بعدد الأيام ذلك.

require 'date'
d = Date.new(2026, 5, 30)
puts((d + 5).to_s)

الفرق بين تاريخين

يُرجع طرح تاريخين عددًا من الأيام من نوع Rational. استدعِ to_i للحصول على عدد الأيام الكاملة.

require 'date'
a = Date.new(2026, 1, 1)
b = Date.new(2026, 12, 31)
puts((b - a).to_i)

إزاحة الأشهر والسنوات

يوفّر صنف Date الدوال next_month وprev_month وnext_year والعاملين >> و<< للإزاحة الآمنة بحسب الأشهر.

require 'date'
d = Date.new(2026, 5, 30)
puts(d.next_month.to_s)
puts((d >> 3).to_s)

الأمان عند نهاية الشهر

تقيّد إزاحة الأشهر التاريخ بالتواريخ الصالحة. تؤدي إضافة شهر إلى 31 يناير إلى الوصول إلى آخر يوم صالح في فبراير، وليس إلى تاريخ غير صالح.

require 'date'
d = Date.new(2026, 1, 31)
puts((d >> 1).to_s)

حساب الأيام المتبقية

مهمة شائعة: معرفة عدد الأيام المتبقية حتى تاريخ مستقبلي. اطرح تاريخ اليوم من التاريخ المستهدف.

require 'date'
target = Date.new(2026, 12, 25)
from = Date.new(2026, 5, 30)
puts("#{(target - from).to_i} days to go")

قياس الوقت المنقضي

لقياس المدة التي يستغرقها تنفيذ الكود، خزّن Time.now قبل التنفيذ وبعده، ثم اطرح القيمتين.

start = Time.now
sum = 0
1000.times { |i| sum += i }
puts("sum=#{sum}")
puts((Time.now - start) >= 0)

اختبار سريع

عند طرح قيمة Time من أخرى، ماذا تُرجع Ruby؟

مراجعة: الحساب على Time

يمكنك الآن إجراء الحسابات باستخدام الوقت:

  • تضيف Time وتطرح باستخدام الثواني
  • تضيف Date وتطرح باستخدام الأيام
  • يعطي طرح Time من Time عددًا من الثواني من نوع Float
  • يعطي طرح Date من Date عددًا من الأيام من نوع Rational
  • تُجري next_month و>> و<< إزاحة آمنة للأشهر
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)
البدء مجانًا

تعلم Ruby مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
29
الدروس
109

الأسئلة الشائعة

هل درس «الحسابات الزمنية» مجاني؟

نعم — نص درس «الحسابات الزمنية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «الحسابات الزمنية»؟

المدد والفروق تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «الحسابات الزمنية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فئات الوقت والتاريخ
  2. التحليل والتنسيق
  3. الحسابات الزمنية
  4. المناطق الزمنية
← العودة إلى Ruby Academy