0Pricing
Swift Academy · درس

نوع Date والفواصل الزمنية

مثّل نقاطًا زمنية ومددًا زمنية.

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

نوع Date

يمثل Date في Foundation نقطة زمنية واحدة مستقلة عن أي تقويم أو منطقة زمنية. وهو في داخله عدد من الثواني نسبةً إلى تاريخ مرجعي.

إنشاء Date

تعطي Date() اللحظة الحالية. ويُرجع كل استدعاء اللحظة التي يُنفّذ فيها.

import Foundation

let now = Date()
print("Now is a Date value")
print(type(of: now))

الفواصل الزمنية

إن TimeInterval هو ببساطة عدد من الثواني من النوع Double. يمكنك إضافة الفواصل الزمنية أو طرحها لتحريك التاريخ إلى الأمام أو الخلف.

import Foundation

let now = Date()
let inOneHour = now.addingTimeInterval(3600)
print(inOneHour > now)

timeIntervalSince

تعيد timeIntervalSince(_:) عدد الثواني الفاصلة بين تاريخين على هيئة TimeInterval. وتشير القيمة الموجبة إلى أن التاريخ المُستقبِل أحدث.

import Foundation

let start = Date()
let later = start.addingTimeInterval(120)
let gap = later.timeIntervalSince(start)
print("Gap seconds: \(gap)")

مقارنة التواريخ

يتوافق Date مع Comparable، ولذلك يمكنكم استخدام < و> و== مباشرةً لترتيب الأحداث.

import Foundation

let a = Date()
let b = a.addingTimeInterval(10)
print(a < b)
print(a == a)

التواريخ المرجعية

تقيس timeIntervalSinceReferenceDate عدد الثواني منذ 1 يناير 2001 بتوقيت UTC، بينما تستخدم timeIntervalSince1970 حقبة Unix.

import Foundation

let d = Date(timeIntervalSince1970: 0)
print(d.timeIntervalSince1970)

الإنشاء انطلاقًا من حقبة زمنية

يمكنكم إنشاء لحظة زمنية محددة من طابع زمني وفق Unix، وهذا مفيد عند تلقّي الأوقات من خادم.

import Foundation

let epoch = Date(timeIntervalSince1970: 1_700_000_000)
print(epoch.timeIntervalSince1970)

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

تعطيكم أيضًا الطريقة distance(to:) من Comparable/Strideable الفترة الفاصلة بين تاريخين.

import Foundation

let a = Date()
let b = a.addingTimeInterval(45)
print(a.distance(to: b))

أدوات الماضي والمستقبل

توفر القيمتان الثابتتان .distantPast و.distantFuture تاريخين خاصين يمكن استخدامهما كقيم افتراضية في المقارنات.

import Foundation

let now = Date()
print(Date.distantPast < now)
print(Date.distantFuture > now)

قياس الزمن المنقضي

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

import Foundation

let start = Date()
var total = 0
for i in 1...1000 { total += i }
let elapsed = Date().timeIntervalSince(start)
print("Sum: \(total)")
print("Elapsed >= 0: \(elapsed >= 0)")

Date مستقل عن التقويم

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

import Foundation

let now = Date()
// To get the year you must use a Calendar, not Date alone.
print("A Date is just an instant in time.")

تحقق سريع

ماذا تعيد laterDate.timeIntervalSince(earlierDate)؟

مراجعة

يمثل Date لحظة زمنية واحدة مقاسة بالثواني. يمكنكم إزاحتها باستخدام addingTimeInterval، وقياس الفواصل باستخدام timeIntervalSince، ومقارنتها بالعوامل، وإنشاؤها انطلاقًا من الحقب الزمنية. وهي مستقلة عن التقويم، لذلك يقدّم الدرس التالي Calendar وDateComponents.

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

هل درس «نوع Date والفواصل الزمنية» مجاني؟

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

ماذا ستتعلم في «نوع Date والفواصل الزمنية»؟

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

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

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

كم من الوقت يستغرق درس «نوع Date والفواصل الزمنية»؟

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

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

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

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

  1. نوع Date والفواصل الزمنية
  2. ‏Calendar و DateComponents
  3. تنسيق التواريخ
  4. المناطق الزمنية والمحليات
← العودة إلى Swift Academy