1 --->我是Objective-C的新手并且坚持到了某一点。概念是预订时段/预订类型,这意味着无法在之前和之前的日期预订时段。我必须将今天的日期与特定日期进行比较,可能比今天的日期还要大于今天的日期。
为了获得当前日期,我已经这样做了:
NSDate *date = [NSDate date];
NSDateFormatter *formatter = nil;
formatter=[[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
我在UItextField中有一个与今天日期进行比较的日期,该日期也是yyyy-MM-dd格式。
现在我必须将今天的日期与textField日期进行比较。但是我没有得到它..
if(textfielddate<currentdate)
{
NSLog(@"You cannot book a slot at past date);
}
但是这里没有比较..
2 ---&GT;我需要将24小时格式的时间与24小时格式的当前时间进行比较..
我在字符串变量12:00,11:00,15:00等中有特定的时间。现在我需要将它与24小时格式的当前时间进行比较。
if([time <= currenttime] && [textFielddate==currentdate])
{
NSLog(@"You cannot book a slot at past time ");
}
我该怎么做?
答案 0 :(得分:1)
BEst方式是使用NSCompariosnResult
[date1 compare:date2];
然后检查是升序还是降序或等于。
此致 迪帕克
答案 1 :(得分:1)
用于检查在UITextField中输入的日期是否为先前。 您可以使用在文本字段中输入的值创建新日期。假设输入的值是2012年11月6日,那么从该文本字段开始,您必须以编程方式以整数形式获取日,月和年组件。 在整数中获得小时,分钟和秒数,以便您需要检查它是否是之前的时间。使用以下方法创建所需时间的日期:
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:iDay];
[comps setMonth:iMonth];
[comps setYear:iYear];
[comps setHour:iHour];
[comps setMinute:iMinutes];
[comps setSecond:iSeconds];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *dateToCheck = [gregorian dateFromComponents:comps];
[comps release];
创建日期后,您可以使用以下方式检查日期是否为之前的日期:
double timestamp = [dateToCheck timeIntervalSinceDate:[NSDate date]];
if(timestamp < 0)
{
// The date is previous one
}