Saya memiliki NSDate
yang harus saya bandingkan dengan dua tanggal lainnya NSDate
dan saya coba dengan NSOrderAscending
dan NSOrderDescending
tetapi jika tanggal saya sama pada dua tanggal lainnya?
Contoh: jika saya memiliki a myDate = 24/05/2011
dan dua lainnya yaitu satu = 24/05/2011
dan dua 24/05/2011
apa yang dapat saya gunakan?
objective-c
ios
nsdate
bersepedaIsBetter
sumber
sumber
Jawaban:
Menurut dokumentasi Apple
NSDate compare:
Dengan kata lain:
Perhatikan bahwa mungkin lebih mudah dalam kasus khusus Anda untuk membaca dan menulis ini:
Lihat Dokumentasi Apple tentang yang satu ini .
sumber
NSDateComponents
Setelah banyak mencari stackoverflow dan web, saya harus menyimpulkan bahwa cara terbaik untuk melakukannya adalah seperti ini:
Anda juga dapat mengubahnya menjadi perbedaan antar jam.
Nikmati!
Edit 1
Jika Anda ingin membandingkan tanggal dengan format hh / MM / tttt saja, Anda perlu menambahkan baris di bawah ini antara
NSDate* currentdate = [NSDate date];
&&NSTimeInterval distance
sumber
Saya anggap Anda bertanya apa nilai kembaliannya dalam fungsi perbandingan.
Jika tanggalnya sama maka kembali
NSOrderedSame
Jika ascending (2nd arg> 1st arg) return
NSOrderedAscending
Jika descending (2nd arg <1st arg) kembali
NSOrderedDescending
sumber
Saya tidak tahu persis apakah Anda menanyakan hal ini, tetapi jika Anda hanya ingin membandingkan komponen tanggal NSDate, Anda harus menggunakan NSCalendar dan NSDateComponents untuk menghapus komponen waktu.
Sesuatu seperti ini seharusnya berfungsi sebagai kategori untuk NSDate:
sumber
NSDate
sebenarnya mewakili interval waktu dalam hitungan detik sejak tanggal referensi (1 Jan 2000 UTC menurut saya). Secara internal, angka floating point presisi ganda digunakan sehingga dua tanggal arbitrer sangat tidak mungkin untuk membandingkan sama bahkan jika keduanya berada pada hari yang sama. Jika Anda ingin melihat apakah tanggal tertentu jatuh pada hari tertentu, Anda mungkin perlu menggunakanNSDateComponents
. misalnyasumber
Periksa Fungsi berikut untuk perbandingan tanggal pertama-tama buat dua objek NSDate dan teruskan ke fungsi: Tambahkan baris kode di bawah ini di viewDidload atau sesuai dengan skenario Anda.
inilah fungsinya
Cukup ubah tanggal dan uji fungsi di atas :)
sumber