Как я могу перейти на следующую неделю, используя nscalendar & nsdate при нажатии кнопки? - PullRequest
0 голосов
/ 30 декабря 2011

Когда моя таблица загружается, она получает данные из базы данных mysql на основе текущей недели, в которой мы находимся. Все это работает нормально, но я также хочу, чтобы пользователь мог щелкнуть UIB-кнопку, которая загружает данные за следующую неделю. После этого кнопка остается там и ее можно нажимать снова и снова, чтобы перейти к следующим неделям.

 NSDate *date = [NSDate date]; 
    NSCalendar *cal =[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];

    [cal setFirstWeekday:3]; //


    NSDate *beginningOfWeek = nil;
    [cal rangeOfUnit:NSWeekCalendarUnit startDate:&beginningOfWeek interval:nil forDate:date];
    NSDateComponents *beginComponents = [cal components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit) fromDate:beginningOfWeek];

    NSDateComponents *offset = [[NSDateComponents alloc]init];
    [offset setDay:6];
    [offset setHour:23];
    NSDate *endOfWeek = [cal dateByAddingComponents:offset toDate:beginningOfWeek options:0];
    NSDateComponents *endComponents = [cal components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit) fromDate:endOfWeek];

    NSTimeInterval tiStart = [beginningOfWeek timeIntervalSince1970];
    NSTimeInterval tiEnd = [endOfWeek timeIntervalSince1970];
    NSString *startWeekString = [NSString stringWithFormat:@"%f", tiStart];
    NSString *endWeekString = [NSString stringWithFormat:@"%f", tiEnd];


    NSURL *url = [NSURL URLWithString:@"http://localhost/test.php"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:startWeekString forKey:@"startweek"];
    [request setPostValue:endWeekString forKey:@"endweek"];
    [request setDelegate:self];
    [request startAsynchronous];

}

-(IBAction)nextWeek:(id)sender {

}

Как лучше всего это сделать?

1 Ответ

0 голосов
/ 30 декабря 2011

Я бы преобразовал весь ваш код компонента календаря и даты в метод, который принимает в качестве аргумента NSDate (начальную дату) и & startWeekString и & endWeekString, и заполняет эти последние два значения.Отслеживайте текущую неделю (или текущую дату начала) в переменной и внутри nextWeek, увеличивайте эту переменную на неделю и передавайте ее в метод календаря.

...