Сравнивая 2 даты для ограничения выбора пользователем будущей даты? - PullRequest
0 голосов
/ 09 ноября 2011

У меня возникла проблема, см. Проблему ниже и помогите ее решить.

У меня есть средство выбора даты, в котором я показываю (дата, месяц, год), когда пользователь выбирает предыдущую дату, например5 ноября 2011 года метка должна обновляться и отображать выбранную дату, а если пользователь выбирает будущую дату после текущей даты, он должен показывать предупреждение для выбора «текущей или предыдущей даты».

Ниже приведен кодкоторый я не смог выполнить условие.

NSDate *post = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
dateFormat.dateStyle = NSDateFormatterMediumStyle;
NSString *theDate = [dateFormat stringFromDate:post];

NSDate *dates = [datepick date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateStyle = NSDateFormatterMediumStyle;
NSString *datetime = [dateFormatter stringFromDate:dates];

if (datetime > theDate) 
{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please select current date or past date" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];
}
else if(datetime <= theDate)
{
    date_array = [[NSMutableArray alloc]init];
    date.text = datetime;
    [date_array addObject:datetime];
}
[dateFormat release];
[dateFormatter release];

Пожалуйста, помогите как можно скорее. Спасибо.

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Вы можете сравнить NSDate s с - [NSDate сравнить:].Итак, попробуйте это:

if ([dates compare:post] == NSOrderedDescending) {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Healthcare" message:@"Please select current date or past date" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];
}
else {
    ...
}
0 голосов
/ 09 ноября 2011

Вы можете установить свойства minimumDate и maximumDate вашего экземпляра UIDatePicker, и у пользователя не будет выбора, кроме как выбрать дату в этих пределах:)

...