ด้วย Swift 5 คุณสามารถใช้หนึ่งในสองวิธีด้านล่างเพื่อตรวจสอบว่าวันที่เกิดขึ้นระหว่างวันที่สองวันอื่น ๆ หรือไม่
# 1. ใช้DateInterval
's contains(_:)
วิธี
DateInterval
contains(_:)
มีวิธีการที่เรียกว่า contains(_:)
มีประกาศดังต่อไปนี้:
func contains(_ date: Date) -> Bool
ระบุว่าช่วงเวลานี้มีวันที่ที่กำหนดหรือไม่
รหัส Playground ต่อไปนี้แสดงวิธีใช้contains(_:)
เพื่อตรวจสอบว่าวันที่เกิดขึ้นระหว่างวันที่สองวันอื่น ๆ หรือไม่:
import Foundation
let calendar = Calendar.current
let startDate = calendar.date(from: DateComponents(year: 2010, month: 11, day: 22))!
let endDate = calendar.date(from: DateComponents(year: 2015, month: 5, day: 1))!
let myDate = calendar.date(from: DateComponents(year: 2012, month: 8, day: 15))!
let dateInterval = DateInterval(start: startDate, end: endDate)
let result = dateInterval.contains(myDate)
print(result) // prints: true
# 2. ใช้ClosedRange
's contains(_:)
วิธี
ClosedRange
contains(_:)
มีวิธีการที่เรียกว่า contains(_:)
มีประกาศดังต่อไปนี้:
func contains(_ element: Bound) -> Bool
ส่งคืนค่าบูลีนที่ระบุว่าองค์ประกอบที่ระบุมีอยู่ในช่วงหรือไม่
รหัส Playground ต่อไปนี้แสดงวิธีใช้contains(_:)
เพื่อตรวจสอบว่าวันที่เกิดขึ้นระหว่างวันที่สองวันอื่น ๆ หรือไม่:
import Foundation
let calendar = Calendar.current
let startDate = calendar.date(from: DateComponents(year: 2010, month: 11, day: 22))!
let endDate = calendar.date(from: DateComponents(year: 2015, month: 5, day: 1))!
let myDate = calendar.date(from: DateComponents(year: 2012, month: 8, day: 15))!
let range = startDate ... endDate
let result = range.contains(myDate)
//let result = range ~= myDate // also works
print(result) // prints: true