के लिए एनएसडीएटी खोजें, मैं वर्तमान तिथि के बाद अगले सोमवार की तारीख प्राप्त करना चाहता हूं।अगले सोमवार
तो अगर आज की तारीख 2013-08-09 (शुक्रवार) है तो मैं दिनांक 2013-08-12 प्राप्त करना चाहता हूं।
मैं यह कैसे कर सकता हूं?
के लिए एनएसडीएटी खोजें, मैं वर्तमान तिथि के बाद अगले सोमवार की तारीख प्राप्त करना चाहता हूं।अगले सोमवार
तो अगर आज की तारीख 2013-08-09 (शुक्रवार) है तो मैं दिनांक 2013-08-12 प्राप्त करना चाहता हूं।
मैं यह कैसे कर सकता हूं?
कोड का यह टुकड़ा आप क्या चाहते हैं मिलना चाहिए कर सकते हैं। यह बस गणना करता है कि सोमवार से कितने दिन हैं और इसे वर्तमान की तारीख से जोड़ दें।
NSDate *now = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit fromDate:now];
NSUInteger weekdayToday = [components weekday];
NSInteger daysToMonday = (9 - weekdayToday) % 7;
NSDate *nextMonday = [now dateByAddingTimeInterval:60*60*24*daysToMonday];
untested है, लेकिन काम करना चाहिए, और कैलेंडर के पहले दिनांक बदलने के बारे में चिंता किए बिना।
और तो यह और भी आसानी से एक और दिन सप्ताह के हर को addapted किया जा सकता है, बस 7 + weekDayYouWant
द्वारा 9
(9 - weekdayToday) % 7;
अंदर बदलने के लिए, कि रविवार = 1, सोमवार = 2 ...
धन्यवाद लुकास, पूरी तरह से काम करता है। सिर्फ एक बात, अगर आज सोमवार है तो मैं इस सोमवार के बजाय अगले सोमवार को दिखाना चाहता हूं। क्या आप मुझे बता सकते हैं कि मैं इसे कैसे प्राप्त कर सकता हूं? धन्यवाद फिर से – iOSAppDev
मुझे नहीं लगता कि इस तरह के एक दिन के लिए व्यवहार को बदलने का एक शानदार तरीका है। लेकिन आप ** ** ** ('प्रतिस्थापित नहीं) कुछ ऐसा कर सकते हैं, ** **' '' अगले 'सोमवार' 'कोड से पहले:' '' दिन ToMonday = (daysToMonday == 0)? 7: दिन टोंडोडे; '' '। इस तरह, आप वर्तमान दिन सोमवार को 0 दिनों के बजाय 7 दिन जोड़ देंगे। अगर आपको इस मामले के लिए बेहतर समाधान मिल रहा है, तो बस मुझे बताएं –
त्वरित उत्तर के लिए धन्यवाद और आपका समाधान पूरी तरह से काम करता है :) धन्यवाद – iOSAppDev
आप NSCalendar
विधि dateFromComponents:
का उपयोग एक ठीक से शुरू की NSDateComponents
वस्तु गुजर इन पंक्तियों के साथ
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSYearCalendarUnit | NSWeekOfYearCalendarUnit fromDate:[NSDate date]];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setWeekOfYear:[components weekOfYear] + 1];
[comps setWeekday:1];
[comps setYear:[components year]];
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday:2]; //This needs to be checked, which day is monday?
NSDate *date = [calendar dateFromComponents:comps];
कुछ काम कर सकता था (आँख बंद करके टाइप किया)
मानते हैं कि सप्ताह रविवार (सप्ताह का दिन = 0) में शुरू होता है, क्या यह कोड रविवार को चलने के एक दिन के बजाय सप्ताह के सोमवार को नहीं मिलेगा? –
सप्ताहांत इकाइयां संख्या 1 से एन हैं, जहां एन सप्ताह में दिनों की संख्या है। उदाहरण के लिए, ग्रेगोरियन कैलेंडर में, एन 7 है और रविवार का प्रतिनिधित्व 1. तो हां, शायद कोड को बदलने की जरूरत है – Vik
मैंने इसे थोड़ा ध्यान में रखने के लिए कोड संपादित किया। बेशक किसी को भी यह जांचना चाहिए कि वर्तमान दिन साल का आखिरी सप्ताह नहीं है और इसी तरह .. – Vik
हालांकि यह है याद एक साधारण सवाल और थोड़ा प्रयास करने की आवश्यकता है, किसी भी भाषा में नरक के रूप में तारीखें परेशान हैं इसलिए मुझे नहीं पता कि आपको नीचे वोट क्यों दिया जाना चाहिए। –