SORU
13 EKİM 2009, Salı


Cocoa-Touch: Nasıl eğer iki NSDates aynı gün içinde görmek ister miyim?

Eğer iki NSDate örnekleri aynı gün hem bilmek istiyorum.

Daha iyi/daha kolay bir yolu NSDateComponents almak ve gün/ay/yıl karşılaştırma daha yapmak var mı?

CEVAP
14 EKİM 2009, ÇARŞAMBA


HedefliyoriOS 8 (ve OS X 10.9 veya daha sonrasonra Joe's answer daha iyi bir çözüm bu amaç için NSCalendar sadece yeni bir yöntem kullanıyor

-[NSCalendar isDate:inSameDayAsDate:]

İOS 7 veya daha önceki bir sürümü için: NSDateComponents benim tercihim. Nasıl bir şey hakkında bu gibi:

- (BOOL)isSameDayWithDate1:(NSDate*)date1 date2:(NSDate*)date2 {
    NSCalendar* calendar = [NSCalendar currentCalendar];

    unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
    NSDateComponents* comp1 = [calendar components:unitFlags fromDate:date1];
    NSDateComponents* comp2 = [calendar components:unitFlags fromDate:date2];

    return [comp1 day]   == [comp2 day] &&
           [comp1 month] == [comp2 month] &&
           [comp1 year]  == [comp2 year];
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • WK

    WK

    9 Ocak 2006