เปรียบเทียบสองวันที่

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 อยู่ข้างหน้า; ค่าลบ: อยู่ข้างหลัง; ศูนย์: พวกมันเหมือนกัน มีประโยชน์มากสำหรับตัวจับเวลา, การนับถอยหลัง, และการติดตามระยะเวลา ในเชิงลึก, วันที่เป็นเพียงจุดอ้างอิงในเวลา—คิดถึงพวกมันเป็นเหมือนตราประทับเวลาที่หรูหรา

ดูเพิ่มเติม: