2010-10-29 19 views
14

आईओएस एसडीके के साथ मुझे यह देखने के लिए एक आसान और सुरक्षित तरीका ढूंढना होगा कि कल एनएसडीएटी कल है या नहीं।पता लगाएं कि क्या एनएसडीएटी आज है, कल, कल

NSDate *myDate = someDate; 
if ([myDate isTomorrow]) { 
    NSLog("Tomorrow"); 
} 

आप इसे कैसे हल होगा: छद्म कोड में कुछ इस तरह मैं क्या तलाश कर रहा हूँ है?

+0

के संभावित डुप्लिकेट [तुलना करें NSDate आज या कल के लिए] (http://stackoverflow.com/questions/2893835/compare-nsdate-for-today-or-yesterday) –

उत्तर

33

हमारे एरिका Sadun के महान NSDateextension वर्ग की जाँच करें: http://github.com/erica/NSDate-Extensions

वहाँ तिथियों की तुलना की बहुत सारी, उन के बीच आप वास्तव में क्या जरूरत है :)

+0

साथ खेलने के बाद बाहर मिले यह थोड़ा सा लगता है कि इसमें कुछ समस्याएं हैं, उदाहरण के लिए डेलाइट सेविंग के साथ डेटबसस्ट्रिंगडेज़ काम नहीं कर रहा है। यह एक महान विस्तार है लेकिन हमेशा सुरक्षित नहीं होता है। – mrrmatinsi

+1

उन लोगों के लिए जो टिप्पणियां पढ़ रहे होंगे: परियोजना को कई बार पहले ही अपडेट कर दिया गया है इसलिए चिंता न करें, सब कुछ ठीक काम करना चाहिए। – Nekto

+2

एरिका का कोड * बिल्कुल * था जिसे मैं खोज रहा था और एनएसडीएटी के लिए एक महान उपयोगिता श्रेणी थी।अत्यधिक सिफारिशित। –

36

मैं समझता हूँ कि यह बहुत पुराना है कर रहे हैं, लेकिन मैं लाना चाहते हैं उत्तर अद्यतित (जैसा कि मैंने किसी और को अद्यतित उत्तर पोस्ट नहीं किया था)।

आईओएस 8.0 के बाद से आप कार्यों कि तुम तारीख की तुलना के लिए उपयोग कर सकते हैं का एक समूह है:

  • compareDate: todate: toUnitGranularity:
  • isDate: equalToDate: toUnitGranularity:
  • isDate: inSameDayAsDate:
  • isDateInToday:
  • isDateInTomorrow:
  • isDateInWeekend:
  • isDateInYesterday:

उदाहरण नीचे देखें:

NSDate *today = [NSDate new]; 
NSCalendar* calendar = [NSCalendar currentCalendar]; 

BOOL isToday = [calendar isDateInToday:today]; 
BOOL isYesterday = [calendar isDateInYesterday:today]; 

isToday हाँ हो जाएगा।

कल नहीं होगा, यह देखते हुए कि हमने आज की तारीख दी है।

आगे पढ़ने के लिए Apple's Documentation देखें।

3

स्विफ्ट 3

let isToday = Calendar.current.isDateInToday(yourDate) 

फिर आप मूल्य की जाँच करें और बस के साथ उसके अनुसार आगे बढ़ सकते हैं:

if isToday { 
    //If true, do this 
} 

कल, सप्ताहांत के लिए इसी तरह के काम करता है, और कुछ अन्य लोगों उदाहरण के लिए, कर रहे हैं:

let isTomorrow = Calendar.current.isDateInTomorrow(yourDate) 

This guide उनमें सभी उद्देश्य-सी और स्विफ्ट में हैं:

enter image description here

संबंधित मुद्दे