العمليات الحسابية على الوقت
أضف الأوقات وقارن بينها
العمليات الحسابية على الوقت درس مجاني في Lua Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Lua Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Lua Academy 4 دروس في المجموع.
الوقت مجرد أرقام
بما أن os.time تعيد عددًا عاديًا من الثواني، فإن إجراء العمليات الحسابية على التواريخ يعتمد في الغالب على الحساب المعتاد. أضيفوا الثواني للتقدم، واطرحوها للرجوع.
يوضح هذا الدرس كيفية إزاحة الأوقات ومقارنتها والعثور على الفاصل بين لحظتين.
الثواني في الدقيقة والساعة واليوم
للعمل بوحدات أكبر، تذكروا القيم الأساسية: 60 ثانية في الدقيقة، و3600 ثانية في الساعة، و86400 ثانية في اليوم.
يتيح لكم الضرب في هذه الثوابت التعبير عن أي مدة بالثواني.
print("Minute:", 60)
print("Hour:", 60 * 60)
print("Day:", 24 * 60 * 60)بعد ساعة واحدة
للحصول على الوقت بعد ساعة من الآن، خذوا os.time() وأضيفوا إليها 3600 ثانية.
مرروا الرقم الجديد إلى os.date لرؤية النتيجة في صورة نص واضح.
local now = os.time()
local later = now + 3600
print(os.date("%H:%M", now))
print(os.date("%H:%M", later))الأمس والغد
أضيفوا 86400 ثانية للانتقال يومًا إلى الأمام، أو اطرحوا هذه القيمة للرجوع يومًا إلى الخلف.
هذه طريقة سريعة لحساب تاريخ الغد أو الأمس دون القلق بشأن حدود الأشهر.
local now = os.time()
print("Yesterday:", os.date("%Y-%m-%d", now - 86400))
print("Tomorrow: ", os.date("%Y-%m-%d", now + 86400))إنشاء تاريخ محدد
ابدؤوا العمليات الحسابية من تاريخ ثابت بإنشائه باستخدام جدول. ننشئ هنا يوم رأس السنة 2025، ثم نضيف أسبوعًا.
ينتقل الوقت المضاف بشكل صحيح إلى 8 يناير.
local start = os.time({year=2025, month=1, day=1})
local week = start + 7 * 86400
print(os.date("%Y-%m-%d", week))مقارنة وقتين
بما أن الأوقات أرقام، تعمل معاملات المقارنة العادية معها. ويدل الرقم الأكبر على لحظة لاحقة.
يسهل ذلك التحقق مما إذا كان الموعد النهائي قد مضى.
local deadline = os.time({year=2020, month=1, day=1})
local now = os.time()
if now > deadline then
print("Deadline has passed")
endالفرق بالثواني
يؤدي طرح وقت من وقت آخر إلى الحصول على الفاصل بينهما بالثواني. وتوفر Lua أيضًا os.difftime(a, b) التي تعيد a - b في صورة رقم.
يُعدّ استخدام os.difftime الطريقة المحمولة والموصى بها للعثور على مدة زمنية.
local a = os.time({year=2025, month=1, day=2})
local b = os.time({year=2025, month=1, day=1})
print(os.difftime(a, b))تحويل الثواني إلى أيام
الفارق الزمني الخام بالثواني كبير، لذا اقسموه للوصول إلى وحدات أسهل استخدامًا. اقسموا على 86400 للحصول على الأيام، أو على 3600 للحصول على الساعات.
استخدموا math.floor لإسقاط الجزء الكسري عندما تريدون وحدات كاملة فقط.
local diff = os.difftime(
os.time({year=2025, month=1, day=11}),
os.time({year=2025, month=1, day=1}))
print(diff / 86400, "days")الأيام المتبقية حتى حدث
اجمعوا الأفكار معًا لإنشاء عدّ تنازلي حتى تاريخ مستقبلي. اطرحوا الوقت الحالي من الوقت المستهدف، ثم حوّلوا الثواني إلى أيام كاملة.
يُستخدم هذا النمط في مؤقتات العدّ التنازلي وتطبيقات التذكير.
local target = os.time({year=2030, month=1, day=1})
local secs = os.difftime(target, os.time())
local days = math.floor(secs / 86400)
print("Days left:", days)التطبيع باستخدام os.time
هناك حيلة مفيدة: مرّروا إلى os.time جدولًا يحتوي على قيمة خارج النطاق، وسيصححها تلقائيًا. فاليوم 32 من يناير يصبح 1 فبراير.
يتيح لكم ذلك إضافة أيام بزيادة قيمة الحقل day ببساطة، بينما تتولى Lua ترتيب أمور التقويم.
local t = os.time({year=2025, month=1, day=32})
print(os.date("%Y-%m-%d", t))إضافة شهر بأمان
بفضل التطبيع، يمكنكم زيادة قيمة الحقل month إلى ما بعد 12، وستنقل Lua السنة إلى الأمام تلقائيًا.
فالشهر 13 من عام 2025 يصبح يناير 2026 تلقائيًا.
local t = os.time({year=2025, month=13, day=1})
print(os.date("%Y-%m-%d", t))اختبار سريع
طبّقوا معرفتكم بالحسابات الزمنية.
مراجعة
القيم الزمنية أعداد، لذا يمكنكم إضافة الثواني أو طرحها لتحريكها: 3600 ثانية في الساعة و86400 ثانية في اليوم. قارنوا الأوقات مباشرة باستخدام > و<.
استخدموا os.difftime لحساب الفارق بين وقتين، ثم اقسموا للحصول على الساعات أو الأيام. وتذكّروا أن os.time يطبّع حقول الجدول الخارجة عن النطاق، مما يبسّط الحسابات التقويمية.
الأسئلة الشائعة
هل درس «العمليات الحسابية على الوقت» مجاني؟
نعم — نص درس «العمليات الحسابية على الوقت» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Lua Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Lua Academy 4 دروس في المجموع.
ماذا ستتعلم في «العمليات الحسابية على الوقت»؟
أضف الأوقات وقارن بينها تتمرن على Lua Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Lua Academy؟
لا تُشترط خبرة سابقة. Lua Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «العمليات الحسابية على الوقت»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Lua Academy هذا؟
نعم. كل درس في Lua Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- os.time وos.date
- تنسيق التواريخ
- العمليات الحسابية على الوقت
- قياس المدد