2012-03-30 13 views
0

Mögliche Duplizieren:
iPhone NSDate eg. next Fridayjeden Tag der Woche von Nsdate bekommen?

Ich habe ein Datum Datum von heute annehmen und jetzt möchte ich, dass die ganze Reihe von Wochentag entsprechende Datum oder Montag und Samstag von entsprechenden Woche wie kann Ich mach das? -Thanx

+0

jst die Lösung von diesem Link bekommen: http: //stackoverflow.com/questions/2886252/iphone-nsdate-eg-next-friday –

Antwort

2

versuchen diesen Code

NSMutableArray *weekdays = [[NSMutableArray alloc] init]; 
NSDate *today = [NSDate date]; 
NSDateComponents *comp = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:today]; 
for (int i=1; i <= 7 ;i++) 
{ 

    [weekdays addObject:[today dateByAddingTimeInterval:((i-[comp weekday])*24*60*60)]]; 
} 
NSLog(@"%@",weekdays); 
NSLog(@"Monday :%@ StaturDay:%@",[weekdays objectAtIndex:1],[weekdays objectAtIndex:6]); 
+0

Danke viel super Lösung ......... –

+0

@aakilladhani. Froh, dass es hilfreich ist :) – Vignesh

1

Ich benutzte folgenden Code. Versuchen Sie, diese

NSMutableArray *daysArray; 
     NSString *weekdayStr; 
     NSMutableArray *weekdayArray; 

weekdayArray = [[NSMutableArray alloc]init]; 
    daysArray = [[NSMutableArray alloc]init ]; 
    NSDate *currentDate = [NSDate date]; 
    NSCalendar *gregorian = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; 

     NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init]; 
     [inputFormatter setDateFormat:@"yyyy-MM-dd"]; 

    NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit) fromDate:currentDate]; 

    int month ; 
    int year ; 
    //int weekDay ; 
    int day ; 

    unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit | NSMinuteCalendarUnit; 
    for (int i = 0; i < 7; i++) { 
     day = [weekdayComponents day]-i; 
     month = [weekdayComponents month]; 
     year = [weekdayComponents year]; 
    // weekDay = [weekdayComponents weekday]-i; 

     NSDateComponents *compsTime = [gregorian components:unitFlags fromDate:[NSDate date]]; 
     [compsTime setDay:day]; 
     [compsTime setMonth:month]; 
     [compsTime setYear:year]; 

     NSString *tempString = [inputFormatter stringFromDate:[gregorian dateFromComponents:compsTime]]; 
     NSArray *separateString=[tempString componentsSeparatedByString:@" "]; 
     NSString *date=[separateString objectAtIndex:0]; 

     [daysArray addObject:date]; 

     NSDateComponents *weekdayComponents1 = [gregorian components:(NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit) fromDate:[gregorian dateFromComponents:compsTime]]; 
     int weekDay1 = [weekdayComponents1 weekday]; 

     switch (weekDay1) { 
      case 1: 
       weekdayStr = @"(Sunday)"; 
       break; 
      case 2: 
       weekdayStr = @"(Monday)"; 
       break; 
      case 3: 
       weekdayStr = @"(Tuesday)"; 
       break; 
      case 4: 
       weekdayStr = @"(Wednesday)"; 
       break; 

      case 5: 
       weekdayStr = @"(Thursday)"; 
       break; 

      case 6: 
       weekdayStr = @"(Friday)"; 
       break; 

      case 7: 
       weekdayStr = @"(Saturday)"; 
       break; 

      default: 
       break; 
     } 
     NSLog(@"weekDay %@ date: %@",weekdayStr,tempString); 
     [weekdayArray addObject:[NSString stringWithFormat:@"%d",weekDay1]]; 
    } 
    NSLog(@"days array: %@", weekdayArray) 
+0

thanx aber es wird mir nächsten sieben Tage geben ich will aktuelle Woche Tage BTW VIGNESH SOL funktioniert –

Verwandte Themen