【问题标题】:How can I go to the next week using nscalendar & nsdate when an button is pressed?按下按钮时,如何使用 nscalendar 和 nsdate 进入下周?
【发布时间】:2011-12-29 22:03:13
【问题描述】:

当我的 tableview 加载时,它会根据我们所在的当前周从 mysql 数据库中获取数据。这一切都很好,但我还希望用户能够单击加载下周数据的 UIButton。之后,该按钮将停留在那里,并且可以反复单击以转到接下来的几周。

 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 {

}

最好的方法是什么?

【问题讨论】:

    标签: iphone objective-c ios nsdate nscalendar


    【解决方案1】:

    我会将所有日历和日期组件代码重构为一个方法,该方法将 NSDate(开始日期)和 &startWeekString 和 &endWeekString 作为参数,并填充后两个值。 在变量中跟踪当前周(或当前使用的开始日期),并在 nextWeek 内,将该变量增加一周,并将其传递给您的日历方法。

    【讨论】:

      猜你喜欢
      • 2021-01-08
      • 1970-01-01
      • 2012-07-02
      • 2014-07-26
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      相关资源
      最近更新 更多