2010-07-03 61 views

回答

2

你可以做這樣的事情:

UIDatePicker *datePicker = [[UIDatePicker alloc] init]; 
[datePicker addTarget:self action:@selector(dateChanged:) forControlEvent:UIControlEventValueChanged]; 

執行情況dateChanged

- (void)dateChanged:(id)sender { 
    UIDatePicker *datePicker = (UIDatePicker *)sender; 
    NSDate *pickedDate = datePicker.date; 

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:pickedDate]; 
    NSInteger weekday = [weekdayComponents weekday]; 
    [gregorian release]; 

    if (weekday == 1 || weekday == 7) { // Sunday or Saturday 
    NSDate *nextMonday = nil; 
    if (weekday == 1) 
     nextMonday = [pickedDate dateByAddingTimeInterval:24 * 60 * 60]; // Add 24 hours 
    else 
     nextMonday = [pickedDate dateByAddingTimeInterval:2 * 24 * 60 * 60]; // Add two days 

    [datePicker setDate:nextMonday animated:YES]; 

    return; 
    } 

    // Do something else if the picked date was NOT on Saturday or Sunday. 
} 

這樣,當在星期六或星期天挑選日期時,日期選擇器自動選擇週末後的星期一。

(代碼未經測試!)

相關問題