在iphone里面判断日期是不是在两个日期之间
问题描述:
我可以比较日期:设定Date1 = 2011-10-14
和Date2 =2011-10-20
。但是我想实现的是判断15号是否在Date1和Date2之间。代码如下:
if ( [date compare:Date1] == NSOrderedDescending && [date compare:Date2] ==
NSOrderedAscending) { //****** }
但是没有成功,请高手指点如何实现。谢谢!
答
试试下面的代码:其中Date1和Date2是判断的范围
NSCalendar *calendar= [NSCalendar currentCalendar];
NSInteger desiredComponents= (NSDayCalendarUnit | NSMonthCalendarUnit);
NSDateComponents *firstComponents= [calendar components:desiredComponents fromDate:Date1];
NSDateComponents *secondComponents= [calendar components:desiredComponents fromDate:Date2];
NSDate *firstWOYear= [calendar dateFromComponents:firstComponents];
NSDate *SecondWOYear = [calendar dateFromComponents:secondComponents];
NSComparisonResult result= [firstWOYear compare:SecondWOYear];
if (result== NSOrderedAscending) {
} else if (result== NSOrderedDescending) {
} else {
}
答
方法一: 可以用nsdate 的 timeIntervalSince1970 方法把时间转换成时间戳进行比较,这里timeIntervalSince1970返回的是NSTimeInterval(double)类型,直接比较就可以了
方法二:使用nsdate的compare方法实现
+ (BOOL)date:(NSDate*)date isBetweenDate:(NSDate*)beginDate andDate:(NSDate*)endDate
{
if ([date compare:beginDate] == NSOrderedAscending)
return NO;
if ([date compare:endDate] == NSOrderedDescending)
return NO;
return YES;
}