Swift:
เปรียบเทียบสองวันที่
วิธีทำ:
Swift ใช้ Date
สำหรับวันที่และเวลา นี่คือวิธีง่ายๆในการเปรียบเทียบวันที่สองวัน:
import Foundation
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd HH:mm"
// สร้างวัตถุวันที่สองอัน
let date1 = dateFormatter.date(from: "2023/01/01 09:00")!
let date2 = dateFormatter.date(from: "2023/02/01 10:00")!
// เปรียบเทียบวันที่
if date1 == date2 {
print("วันที่เหมือนกัน")
} else if date1 < date2 {
print("วันที่1 อยู่ก่อนวันที่2")
} else {
print("วันที่1 อยู่หลังจากวันที่2")
}
ตัวอย่างผลลัพธ์:
วันที่1 อยู่ก่อนวันที่2
สามารถใช้โอเปอเรเตอร์เปรียบเทียบได้เพราะ Date
สอดคล้องกับโปรโตคอล Comparable
ลงลึก:
วันที่ไม่เคยมาในรูปแบบวัตถุที่สะดวกเสมอไป ในต้นแต่คุณต้องจัดการกับส่วนประกอบแต่ละอย่าง เช่น ปี, เดือน, และวัน ยากกว่ามาก ตอนนี้ วัตถุ Date
ใน Swift รับภาระหนัก, และการเปรียบเทียบพวกมันเป็นเรื่องตรงไปตรงมาด้วยโอเปอเรเตอร์ที่ให้มา
ก่อน Swift และ Date
ของ Cocoa, Objective-C ใช้ NSDate
, แต่มันสามารถเชื่อมต่อได้, ดังนั้นโค้ดเก่ายังสามารถใช้งานร่วมกันได้
และเฮ้, ไม่ได้มีแค่ <
, >
, และ ==
— คุณยังสามารถใช้ timeIntervalSince(_:)
สำหรับการควบคุมที่ละเอียดกว่า, เช่น:
let timeInterval = date2.timeIntervalSince(date1)
นี่ให้คุณค่าต่างเป็นวินาที ค่าบวก: date2 อยู่ข้างหน้า; ค่าลบ: อยู่ข้างหลัง; ศูนย์: พวกมันเหมือนกัน มีประโยชน์มากสำหรับตัวจับเวลา, การนับถอยหลัง, และการติดตามระยะเวลา ในเชิงลึก, วันที่เป็นเพียงจุดอ้างอิงในเวลา—คิดถึงพวกมันเป็นเหมือนตราประทับเวลาที่หรูหรา
ดูเพิ่มเติม:
- Apple’s Date documentation: https://developer.apple.com/documentation/foundation/date
- คำแนะนำการจัดรูปแบบวันที่: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html