簡體   English   中英

swiftUI - 日期比較

[英]swiftUI - Date Comparison

我需要比較 2 個日期,如果是相同的日期,請做一些事情......(僅限 dd/MM 到 dd/MM)。 我生成今天的日期,然后設置我自己的日期,比較時,相同的日期不匹配。 (當顯示每個日期(作為文本)時,結果是相同的。例如 10-04 和 10-04。)

struct eddEntryView : View { // ContentView

let dateFormatter: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateFormat = "dd-MM"
        return formatter
    }()

@State private var today = Date()

let specificDate: Date = {
    var components = DateComponents()
    components.day = 14
    components.month = 04
    let newDate = Calendar.current.date(from: components) ?? Date()
    return newDate
}()

var entry: Provider.Entry

var body: some View {
    HStack{
        VStack(alignment: .leading){
            if Calendar.current.isDateInToday(specificDate) // today is 14-04, specific date is set for 14-04, but it doesn't work
{
                Text("THE SAME: \(specificDate, formatter: dateFormatter)")
                    .font(.title)
                    .foregroundColor(Color(.label))
                    .bold()
                Spacer()
            } else {
                Text("Not the same day... \(specificDate, formatter: dateFormatter)")
                    .font(.title)
                    .foregroundColor(Color(.label))
                    .bold()
                Spacer()
            }
}
}

Calendar上有一個 function i sDateInToday(Date) 你可以像這樣使用它:

if Calendar.current.isDateInToday(dueDate) {
    //...
}

還有一個function比較日期是否落在同一天:

Calendar.current.isDate(today, inSameDayAs: dueDate)

解決方案:

let today = Date() // Actual date
func formatDate(date: Date) -> String {
    let formatter = DateFormatter()
    formatter.dateFormat = "dd-MM"
    return formatter.string(from: date)
}

接着:

if ("\(formatDate(date: today))") .elementsEqual("14-04") // specific date {
                Text("the same: \(formatDate(date: today))")
                 // ... do something for the same day
                Spacer()
            } else {
                // ...
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM