0Pricing
Lua Academy · درس

os.time وos.date

احصل على الوقت الحالي

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

أهمية الوقت

تحتاج البرامج غالبًا إلى معرفة الوقت الحالي. تسجل اللعبة وقت إحرازكم للنقاط، ويضع ملف السجل طابعًا زمنيًا لكل حدث، ويعدّ تطبيق التذكيرات الوقت المتبقي حتى الموعد النهائي.

تضع Lua أدوات الوقت في مكتبة os المضمنة. وأهم دالتين فيها هما os.time وos.date. ستتعرفون إلى كلتيهما في هذا الدرس.

تعيد os.time رقمًا

تعيد os.time()، عند استدعائها دون معاملات، اللحظة الحالية في صورة رقم واحد.

يمثل هذا الرقم عدد الثواني منذ نقطة ثابتة في الماضي تُسمى العصر. وهو عدد صحيح فقط، لذلك يمكنكم تخزينه أو مقارنته أو إجراء العمليات الحسابية عليه.

local now = os.time()
print(now)
print(type(now))

العصر

في معظم الأنظمة، يكون العصر عند منتصف ليل 1 يناير 1970 بالتوقيت العالمي UTC. لذلك تخبركم os.time() بعدد الثواني التي مرت منذ ذلك الوقت.

يُعدّ رقم كبير مثل 1700000000 أمرًا طبيعيًا. فهو يزداد بمقدار واحد كل ثانية، مما يجعله مناسبًا جدًا لمقارنة لحظتين.

local seconds = os.time()
print("Seconds since 1970:", seconds)

تعيد os.date نصًا

يصعب قراءة عدد خام من الثواني. تحوّل os.date() الوقت إلى نص سهل القراءة.

عند استدعائها دون معاملات، تعيد سلسلة نصية واضحة تصف التاريخ والوقت الحاليين باستخدام الإعدادات المحلية لنظامكم.

print(os.date())

os.date باستخدام تنسيق

عادةً ما تمررون إلى os.date سلسلة تنسيق. وتُستبدل الرموز الخاصة التي تبدأ بـ % بأجزاء من التاريخ.

يمثل %Y السنة المكونة من أربعة أرقام، ويمثل %m الشهر، ويمثل %d اليوم. ويبقى أي نص آخر كما هو.

print(os.date("Year: %Y"))
print(os.date("%Y-%m-%d"))

دمج الوقت والتاريخ

يمكن أن تتلقى os.date معاملًا ثانيًا هو رقم وقت. مرروا إليها ناتج os.time لتنسيق تلك اللحظة المحددة بالضبط.

من دون المعامل الثاني، تستخدم الوقت الحالي، ولذلك يصف الاستدعاءان اللحظة نفسها.

local t = os.time()
print(os.date("%Y-%m-%d", t))

التوقيت المحلي مقابل UTC

تستخدم os.date منطقتكم الزمنية المحلية افتراضيًا. وللحصول على UTC، أي التوقيت العالمي، ابدؤوا سلسلة التنسيق بعلامة التعجب !.

يهم ذلك في الخوادم والتطبيقات المستخدمة حول العالم، حيث ينبغي للجميع الاعتماد على ساعة موحدة.

print("Local:", os.date("%H:%M"))
print("UTC:  ", os.date("!%H:%M"))

صيغة الجدول

إذا مررتم "*t" بوصفه التنسيق، تعيد os.date جدولًا بدلًا من سلسلة نصية.

يحتوي الجدول على حقول مسماة مثل year وmonth وday وhour وmin وsec. ويفيد ذلك عندما تحتاجون إلى قيمة واحدة منها.

local d = os.date("*t")
print(d.year, d.month, d.day)
print(d.hour, d.min, d.sec)

قراءة حقل واحد

بما أن صيغة الجدول توفر حقولًا مسماة، فمن السهل الحصول على الشهر الحالي وحده أو الساعة الحالية وحدها.

استخدموا !*t للحصول على نسخة الجدول بالتوقيت UTC. وكل حقل عبارة عن رقم عادي يمكنكم استخدامه في الشروط.

local d = os.date("*t")
if d.hour < 12 then
  print("Good morning")
else
  print("Good afternoon")
end

os.time من جدول

تعمل os.time أيضًا في الاتجاه العكسي. مرروا إليها جدولًا يحتوي على year وmonth وday، فتعيد عدد الثواني لذلك التاريخ.

يتيح لكم ذلك إنشاء قيمة وقت لأي تاريخ تقويمي محدد تختارونه.

local t = os.time({year=2020, month=1, day=1, hour=0})
print(t)
print(os.date("%Y-%m-%d", t))

التحويل ذهابًا وإيابًا

يمكنكم الانتقال بحرية بين الصيغتين: تحوّل os.time الجدول إلى رقم، وتحول os.date("*t", n) الرقم مرة أخرى إلى جدول.

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

local n = os.time({year=2021, month=6, day=15})
local back = os.date("*t", n)
print(back.year, back.month, back.day)

اختبار سريع

اختبروا فهمكم للدالتين الرئيسيتين.

مراجعة

تعطي os.time() اللحظة الحالية في صورة عدد من الثواني منذ العصر. وتحول os.date() الوقت إلى نص باستخدام رموز التنسيق %، أو إلى جدول باستخدام "*t".

أضيفوا ! للحصول على UTC، ومرروا رقم وقت بوصفه المعامل الثاني لتنسيق لحظة محددة. وتغطي الدالتان معًا معظم احتياجات التعامل مع التواريخ في Lua.

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

هل درس «os.time وos.date» مجاني؟

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

ماذا ستتعلم في «os.time وos.date»؟

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

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

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

كم من الوقت يستغرق درس «os.time وos.date»؟

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

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

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

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

  1. os.time وos.date
  2. تنسيق التواريخ
  3. العمليات الحسابية على الوقت
  4. قياس المدد
← العودة إلى Lua Academy