عندما تعمل على تطوير تطبيق في Swift، قد تحتاج في بعض الأحيان إلى عرض مدة الزمن التي مرت منذ تاريخ محدد. يمكنك تحقيق ذلك باستخدام NSDate في iOS. لنقم بتحويل الفكرة إلى تنفيذ عملي:
أولاً، يجب عليك الحصول على التاريخ الحالي وتاريخ البداية الذي تريد حساب المدة منذه.
swiftlet currentDate = Date()
let specificDate = // تاريخ البداية الذي تريد حساب المدة منذه
ثم، يمكنك حساب الفارق بين التواريخ باستخدام Calendar وDateComponents.
swiftlet calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: specificDate, to: currentDate)
ثم، يمكنك عرض النتيجة بطريقة تناسب متطلباتك. على سبيل المثال، إذا كان هناك عام واحد على الأقل فقم بعرض السنوات، وإلا فقم بعرض الأشهر والأيام.
swiftif let years = components.year, years > 0 {
print("\(years) year(s) \(months) month(s) \(days) day(s) have passed")
} else {
let months = components.month ?? 0
let days = components.day ?? 0
print("\(months) month(s) \(days) day(s) have passed")
}
هذا التنفيذ سيقوم بطباعة عبارة تحتوي على عدد السنوات والأشهر والأيام التي مرت منذ التاريخ الذي تم تحديده إلى التاريخ الحالي. تذكر أنه يجب استبدال “specificDate” بالتاريخ الفعلي الذي ترغب في حساب المدة منذه.
المزيد من المعلومات
بالطبع، هناك المزيد من المعلومات التي يمكن أن تفيدك في فهم كيفية استخدام NSDate في Swift لعرض مدة الزمن المنقضي. إليك بعض التفاصيل الإضافية:
-
تحديد التاريخ:
- يمكنك تحديد التاريخ باستخدام NSDateComponents لتحديد اليوم والشهر والسنة، ثم استخدام Calendar لتحويلها إلى NSDate.
swiftvar dateComponents = DateComponents() dateComponents.year = 2016 dateComponents.month = 8 dateComponents.day = 11 let specificDate = Calendar.current.date(from: dateComponents)!
-
حساب الفارق الزمني:
- يمكنك استخدام Calendar وDateComponents لحساب الفارق بين التاريخين.
swiftlet calendar = Calendar.current let components = calendar.dateComponents([.year, .month, .day], from: specificDate, to: currentDate)
-
تنسيق النتيجة:
- يمكنك تنسيق النتيجة بطريقة تناسب تطبيقك، على سبيل المثال، إذا كان هناك عام واحد على الأقل فقم بعرض “years”، وإلا فقم بعرض “months” و “days”.
swiftif let years = components.year, years > 0 { print("\(years) year(s) \(months) month(s) \(days) day(s) have passed") } else { let months = components.month ?? 0 let days = components.day ?? 0 print("\(months) month(s) \(days) day(s) have passed") }
-
التعامل مع التاريخ بصورة أكثر تفصيلاً:
- يمكنك استخدام NSDateFormatter لتنسيق التاريخ بطريقة معينة، مثل تنسيق الشهر واليوم والسنة.
swiftlet formatter = DateFormatter() formatter.dateFormat = "MM/dd/yyyy" let formattedDate = formatter.string(from: specificDate)
هذا سيقوم بتنسيق التاريخ إلى “08/11/2016” على سبيل المثال.
مع هذه المعلومات الإضافية، يمكنك استخدام NSDate بشكل أكثر فعالية لعرض مدة الزمن المنقضية في تطبيقك باستخدام Swift في iOS.