العمل مع التواريخ والوقت في Swift: دليل شامل

مدرب بايثون أونلاين للمبتدئين

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

ابدأ الدورة

مقدمة في التعامل مع التواريخ والوقت في Swift

يُعد التعامل مع التواريخ والوقت من المهام الأساسية في تطوير تطبيقات iOS و macOS. سواء كان الأمر يتعلق بعرض التاريخ الحالي، أو حساب الفرق بين الأحداث، أو جدولة الإشعارات، فإن Swift يوفر مجموعة أدوات قوية ومرنة لهذه الأغراض. في هذه المقالة، سنستعرض الفئات والطرق الأساسية: Date، DateFormatter، Calendar، DateComponents و TimeInterval. ستتعلم كيفية إنشاء التواريخ وتنسيقها ومقارنتها والتعامل معها في Swift.

ستكون المادة مفيدة لكل من المبتدئين والمطورين ذوي الخبرة الذين يرغبون في تنظيم معرفتهم. يمكن استخدام جميع أمثلة التعليمات البرمجية مباشرة في مشاريعك.



الفئات الأساسية للتعامل مع التواريخ



الفئة Date

Date هو نوع أساسي يمثل لحظة زمنية محددة، بغض النظر عن المنطقة الزمنية أو التقويم. يخزن عدد الثواني المنقضية منذ 1 يناير 2001 (عصر Cocoa).

import Foundation

// التاريخ والوقت الحاليانlet now = Date()print("الآن: \\(now)")

// التاريخ بعد ساعة واحدةlet oneHourLater = Date(timeIntervalSinceNow: 3600)print("بعد ساعة: \\(oneHourLater)")

// تاريخ من عدد محدد من الثواني منذ العصرlet epochDate = Date(timeIntervalSinceReferenceDate: 0)print("عصر Cocoa: \\(epochDate)")


TimeInterval

TimeInterval هو مجرد اسم مستعار لـ Double، يمثل عدد الثواني. يُستخدم لتحديد الفترات الزمنية.

let interval: TimeInterval = 86400 // 24 ساعة بالثوانيlet tomorrow = Date(timeIntervalSinceNow: interval)print("غداً: \\(tomorrow)")


DateFormatter

DateFormatter مسؤول عن تحويل التاريخ إلى سلسلة نصية والعكس. هذه واحدة من أكثر الفئات استخداماً.

let formatter = DateFormatter()formatter.dateStyle = .longformatter.timeStyle = .short

let currentDate = Date()let dateString = formatter.string(from: currentDate)print("التاريخ المنسق: \\(dateString)")

// التحويل العكسيlet dateFromString = formatter.date(from: "15 أبريل 2025، 14:30")print("التاريخ من السلسلة النصية: \\(dateFromString ?? Date())")

يمكنك تعيين تنسيق مخصص باستخدام dateFormat:

formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"let customString = formatter.string(from: Date())print("تنسيق مخصص: \\(customString)")


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



Calendar

Calendar يسمح بالتعامل مع التواريخ في سياق تقويم معين (ميلادي، إسلامي، إلخ) ومنطقة زمنية محددة.

let calendar = Calendar.currentlet components = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: Date())print("السنة: \\(components.year!), الشهر: \\(components.month!), اليوم: \\(components.day!)")


DateComponents

DateComponents هي بنية تحتوي على مكونات التاريخ الفردية (السنة، الشهر، اليوم، الساعة، إلخ). تُستخدم لإنشاء تواريخ جديدة أو استخراج أجزاء من التواريخ الموجودة.

// إنشاء تاريخ من المكوناتvar birthdayComponents = DateComponents()birthdayComponents.year = 1990birthdayComponents.month = 6birthdayComponents.day = 15birthdayComponents.hour = 10

if let birthday = calendar.date(from: birthdayComponents) { print("تاريخ الميلاد: \\(birthday)")}

// إضافة أيام إلى تاريخif let nextWeek = calendar.date(byAdding: .day, value: 7, to: Date()) { print("بعد أسبوع: \\(nextWeek)")}

يمكن استخدام المكونات للتحقق من خصائص التاريخ:

let isToday = calendar.isDateInToday(Date())print("هل اليوم؟ \\(isToday)")

let isWeekend = calendar.isDateInWeekend(Date())print("هل هي عطلة نهاية الأسبوع؟ \\(isWeekend)")


مقا

المدونات

توصيات الكتب