ios - आईओएस एसडीके में हफ्ते की तारीखें




calendar nscalendar (5)

यहाँ नमूना कोड है जो चाल करता है

-(NSArray*)daysThisWeek
{
     return  [self daysInWeek:0 fromDate:[NSDate date]];
}

-(NSArray*)daysNextWeek
{
    return  [self daysInWeek:1 fromDate:[NSDate date]];
}
-(NSArray*)daysInWeek:(int)weekOffset fromDate:(NSDate*)date
{
    NSCalendar *calendar = [NSCalendar currentCalendar];

    //ask for current week
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    comps=[calendar components:NSWeekCalendarUnit|NSYearCalendarUnit fromDate:date];
    //create date on week start
    NSDate* weekstart=[calendar dateFromComponents:comps];
    if (weekOffset>0) {
        NSDateComponents* moveWeeks=[[NSDateComponents alloc] init];
        moveWeeks.week=1;
        weekstart=[calendar dateByAddingComponents:moveWeeks toDate:weekstart options:0];
    }

    //add 7 days
    NSMutableArray* week=[NSMutableArray arrayWithCapacity:7];
    for (int i=1; i<=7; i++) {
        NSDateComponents *compsToAdd = [[NSDateComponents alloc] init];
        compsToAdd.day=i;
        NSDate *nextDate = [calendar dateByAddingComponents:compsToAdd toDate:weekstart options:0];
        [week addObject:nextDate];

    }
    return [NSArray arrayWithArray:week];
}

मैं दिन के नाम के साथ वर्तमान और अगले सप्ताह की तिथियां प्राप्त करना चाहता हूं।

यानी यदि आज की तारीख 28-06-2013 (शुक्रवार) है तो मैं 23-06-2013 (रविवार) से 29-06-2013 (शनिवार) की तारीखों को इस वर्तमान सप्ताह के रूप में प्राप्त करना चाहता हूं

अगले हफ्ते के लिए मैं 30-06-2013 (रविवार) से 06-07-2013 (शनिवार) की तारीखें प्राप्त करना चाहता हूं।

मैं यह कैसे कर सकता हूँ?

धन्यवाद,


मैं एक उत्तर कॉपी और पेस्ट करने जा रहा था, लेकिन मुझे यह पोस्ट पढ़ने और पढ़ने का सुझाव था: वर्तमान सप्ताह का प्रारंभ और समापन दिनांक । ऐसा लगता है कि आप जो चाहते हैं उसे प्राप्त करने में आपकी सहायता करेंगे।

शायद ऐसा कुछ:

NSDate *now = [NSDate date];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger weekNumber =  [[calendar components: NSWeekCalendarUnit fromDate:now] week];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];
[comp setWeek:weekNumber];  //Week number.

int i;

for (i = 1; i < 8; i=i+1){

    [comp setWeekday:i]; //First day of the week. Change it to 7 to get the last date of the week

    NSDate *resultDate = [gregorian dateFromComponents:comp];

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"EEEE MMMM d, yyyy"];

    NSString *myDateString = [formatter stringFromDate:resultDate];
    NSLog(@"%@",myDateString);

}

उम्म, मैं इस या कुछ पर एक विशेषज्ञ नहीं हूं, लेकिन ऐसा करने का एक गम्भीर तरीका पहले NSDate से सप्ताह के दिन को पहचानने में सक्षम होना है। तो आप if बयान में जोड़ सकते हैं तो अगर बयानों की तारीख और nslog जोड़ सकते हैं या उनमें से प्रत्येक को nslog कर सकते हैं। या मुझे लगता है कि आईओएस कैलेंडर तक पहुंचने का एक तरीका है।

ठीक है, ऊपर उपरोक्त बहुत ज्यादा कहा और मैंने जो कुछ कहा, उससे अधिक किया। हाँ, मेरे सामने पोस्ट पर लिंक की जांच करें।


NSDate उदाहरण को NSDateComponents उदाहरण में कनवर्ट करने के लिए, एक दिन एनएसडीटेकंपन्न करने के लिए एनएससीटाइंडर उदाहरण का प्रयोग करें और उस एनएसडीटा उदाहरण को वापस कनवर्ट करने के लिए एनएससीएलेण्डर का उपयोग करें। अंतिम दो चरणों को दोहराएं जब तक आप अपनी समाप्ति तिथि तक नहीं पहुंच जाते।

NSDate *currentDate = [NSDate date];
 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
 NSDateComponents *comps = [[NSDateComponents alloc] init];
 [comps setDay:1];
 NSDate *nextDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

या फिर प्रारंभ तिथि और समाप्ति तिथि खोजें। पसंद

NSDate *startDate = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:7];
 NSDate *endDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

तो, एनएसडीट अगले डेट;

for ( nextDate = startDate ; [nextDate compare:endDate] < 0 ; nextDate = [nextDate addTimeInterval:24*60*60] ) {
  // use date
}

स्विफ्ट 3 के लिए फिक्स्ड सिंटैक्स

  override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let navVC = segue.destination as! UINavigationController
        let tableVC = navVC.viewControllers.first as! YourTableViewControllerClass

        tableVC.yourTableViewArray = localArrayValue
    }




ios calendar nscalendar