我对一个问题感到震惊,请看下面的问题并帮助解决。
我有一个我正在显示的日期选择器(日期,月份,年份),当用户选择上一个日期时,例如2011年11月5日,标签应该更新并显示所选日期&如果用户选择超出当前日期的未来日期,则应显示警告以选择“当前或上一个日期”。
以下是我无法达到条件的代码。
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];
请尽快帮助。谢谢。
答案 0 :(得分:1)
您可以将NSDate
与 - [NSDate compare:]进行比较。所以试试这个:
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 {
...
}
答案 1 :(得分:0)
您可以设置minimumDate
实例的maximumDate
和UIDatePicker
属性,用户将别无选择,只能从这些边界中选择日期:)