Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> iOS

Cách cộng 1 ngày vào Date trong Swift

Để cộng/trừ ngày vào đối tượng Date trong Swift, chúng ta sử dụng Calendar và DateComponents – cách an toàn, đúng chuẩn lịch (xử lý năm nhuận, múi giờ, DST...).

Ví dụ cơ bản

let today = Date()
print("Hôm nay: \(today)")

// Cộng 1 ngày
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)!
print("Ngày mai: \(tomorrow)")

// Trừ 1 ngày
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: today)!
print("Hôm qua: \(yesterday)")

Kết quả (ví dụ)

Cách cộng 1 ngày vào Date trong Swift

Các thành phần có thể thêm/bớt

Tham số .day có thể thay bằng:

  • .year, .month, .weekOfYear
  • .hour, .minute, .second, .nanosecond

Extension tiện lợi

extension Date {
    func adding(days: Int) -> Date {
        return Calendar.current.date(byAdding: .day, value: days, to: self)!
    }
    
    func adding(months: Int) -> Date {
        return Calendar.current.date(byAdding: .month, value: months, to: self)!
    }
}

// Sử dụng:
let nextWeek = Date().adding(days: 7)
let nextMonth = Date().adding(months: 1)

Lưu ý quan trọng

  • Luôn dùng Calendar.current (lịch của user) thay vì hardcode Gregorian.
  • Date? (optional) – cần unwrap an toàn (guard/if let) thay vì force unwrap ! trong production.
  • Date() trả về thời điểm hiện tại (UTC). Hiển thị cho user cần DateFormatter với timeZone và locale phù hợp.