إنشاء DateTimes
Now وToday وتواريخ محددة
إنشاء DateTimes درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
التعرّف على DateTime
في C#، تمثّل البنية DateTime نقطة زمنية واحدة، بما في ذلك التاريخ ووقت اليوم.
توجد هذه البنية في مساحة الأسماء System، ولذلك فهي متاحة في كل برنامج. وستستخدمونها لأعياد الميلاد والطوابع الزمنية والمواعيد النهائية وغير ذلك.
تحتوي قيمة DateTime على السنة والشهر واليوم والساعة والدقيقة والثانية، وحتى أجزاء من الثانية.
DateTime.Now
إن أبسط طريقة للحصول على التاريخ والوقت الحاليين هي DateTime.Now. فهي تقرأ ساعة حاسوبكم المحلية.
في كل مرة تستدعونها، تحصلون على لقطة جديدة للحظة الحالية. ولأن النتيجة تعتمد على وقت تشغيلها، تتغير القيمة المطبوعة في كل مرة.
using System;
class Program
{
static void Main()
{
DateTime now = DateTime.Now;
Console.WriteLine(now);
}
}تاريخ اليوم
إذا كنتم تهتمون بالتاريخ فقط دون الوقت، فاستخدموا DateTime.Today. فهي تُرجع منتصف الليل (00:00:00) لليوم الحالي.
يفيد ذلك عند مقارنة الأيام، لأن جزء الوقت يكون مضبوطاً على الصفر.
using System;
class Program
{
static void Main()
{
DateTime today = DateTime.Today;
Console.WriteLine(today.Year);
}
}التوقيت العالمي UTC
تستخدم أجهزة الحاسوب حول العالم UTC (التوقيت العالمي المنسق). استخدموا DateTime.UtcNow للحصول على الوقت الحالي وفق UTC، من دون الاعتماد على أي منطقة زمنية محلية.
يُعد UTC الخيار الآمن للخوادم ولتخزين الطوابع الزمنية التي ستقرأها مناطق عديدة.
using System;
class Program
{
static void Main()
{
DateTime utc = DateTime.UtcNow;
Console.WriteLine(utc.Kind);
}
}إنشاء تاريخ محدد
لإنشاء تاريخ محدد بدقة، استخدموا المُنشئ new DateTime(year, month, day). ويكون جزء الوقت مضبوطاً افتراضياً على منتصف الليل.
وهذا مناسب تماماً للتواريخ الثابتة، مثل عطلة أو يوم إطلاق. وبما أن القيمة ثابتة، تكون المخرجات قابلة للتوقع بالكامل.
using System;
class Program
{
static void Main()
{
DateTime launch = new DateTime(2024, 1, 15);
Console.WriteLine(launch.ToString("yyyy-MM-dd"));
}
}إضافة وقت اليوم
يتيح لكم مُنشئ أطول ضبط الساعات والدقائق والثواني: new DateTime(year, month, day, hour, minute, second).
تُستخدم الساعات وفق نظام 24 ساعة، لذلك تعني 14 الساعة 2 مساءً. ويمنحكم ذلك طابعاً زمنياً كاملاً حتى مستوى الثانية.
using System;
class Program
{
static void Main()
{
DateTime meeting = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(meeting);
}
}قراءة الأجزاء
بعد الحصول على DateTime، يمكنكم قراءة كل جزء عبر الخصائص: Year وMonth وDay وHour وMinute وSecond.
تُرجع هذه الخصائص أعداداً صحيحة عادية، لذلك يسهل طباعتها أو مقارنتها.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.Month);
Console.WriteLine(d.Hour);
}
}يوم الأسبوع
تخبركم الخاصية DayOfWeek بيوم الأسبوع الذي يوافقه التاريخ. وتُرجع قيمة من التعداد DayOfWeek، مثل Monday أو Saturday.
وتوجد أيضاً الخاصية DayOfYear، وهي عدد صحيح يتراوح من 1 إلى 366.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 1, 1);
Console.WriteLine(d.DayOfWeek);
}
}القيمتان الدنيا والقصوى
يحتوي DateTime على ثابتين خاصين. تمثّل DateTime.MinValue الأول من يناير في السنة 1، بينما تمثّل DateTime.MaxValue الحادي والثلاثين من ديسمبر في السنة 9999.
يفيدان كقيم افتراضية أو قيم دالّة عندما لا يكون قد تم تعيين تاريخ حقيقي بعد.
using System;
class Program
{
static void Main()
{
Console.WriteLine(DateTime.MinValue);
Console.WriteLine(DateTime.MaxValue.Year);
}
}تحليل سلسلة تاريخ
غالباً ما يحتوي النص القادم من مستخدم أو ملف على تاريخ. تحوّل DateTime.Parse سلسلة نصية إلى DateTime.
إذا لم يكن النص تاريخاً صالحاً، فإن Parse يطرح خطأً. وللتعامل بصورة أكثر أماناً، يمكنكم استخدام DateTime.TryParse، التي تُرجع true أو false بدلاً من إيقاف البرنامج بسبب الخطأ.
using System;
class Program
{
static void Main()
{
DateTime d = DateTime.Parse("2024-07-04");
Console.WriteLine(d.Year);
}
}التحليل الآمن باستخدام TryParse
تتجنب DateTime.TryParse الاستثناءات. فهي تستقبل النص ومتغيراً من النوع out، وتُرجع true عند النجاح.
يُعد هذا النمط الطريقة الموصى بها للتعامل مع الإدخال غير المؤكد، مثل قيمة يكتبها مستخدم.
using System;
class Program
{
static void Main()
{
bool ok = DateTime.TryParse("not a date", out DateTime result);
Console.WriteLine(ok);
}
}تحقق سريع
تريدون التاريخ الحالي فقط من دون مكوّن الوقت (منتصف الليل). أي استدعاء ينبغي استخدامه؟
مراجعة
تعلّمتم كيفية إنشاء قيم DateTime. استخدموا DateTime.Now للحظة المحلية الحالية، وDateTime.Today لمنتصف ليل اليوم، وDateTime.UtcNow للحصول على التوقيت العالمي.
أنشئوا تواريخ ثابتة باستخدام new DateTime(...)، واقرؤوا الأجزاء عبر Year وMonth وDayOfWeek، وحوّلوا النص باستخدام Parse أو TryParse الأكثر أماناً.
الأسئلة الشائعة
هل درس «إنشاء DateTimes» مجاني؟
نعم — نص درس «إنشاء DateTimes» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء DateTimes»؟
Now وToday وتواريخ محددة تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إنشاء DateTimes»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء DateTimes
- تنسيق التواريخ
- TimeSpan والمدد
- الحساب على التواريخ