Iphone 如何检查日期(从日期选择器)是否介于其他两个日期之间?语言

Iphone 如何检查日期(从日期选择器)是否介于其他两个日期之间?语言,iphone,objective-c,nsdateformatter,uidatepicker,Iphone,Objective C,Nsdateformatter,Uidatepicker,我试图从UIDatePicker(MM dd格式)获取日期,并检查它是否在其他两个日期的范围内 我尝试过很多不同的方法,我想我的想法已经走远了:) 有人能帮我做得尽可能简单吗 这是我最后一次尝试的代码: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"MM-dd"]; NSString *theDate = [dateFormat stringFromDate:bi

我试图从UIDatePicker(MM dd格式)获取日期,并检查它是否在其他两个日期的范围内

我尝试过很多不同的方法,我想我的想法已经走远了:) 有人能帮我做得尽可能简单吗

这是我最后一次尝试的代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM-dd"];
NSString *theDate = [dateFormat stringFromDate:birthdateSelector.date];
NSDate *birthdate = [dateFormat dateFromString:theDate];

NSString *Capricorn_Start = @"12-22" ;
NSString *Capricorn_End = @"01-19" ;

if ([birthdate laterDate:[dateFormat dateFromString:Capricorn_End]] && [birthdate earlierDate:[dateFormat dateFromString:Capricorn_Start]]){

    NSLog(@"im capricorn");
}
谢谢, Amir.

如果您有dateA、dateB和dateC,并且您想检查dateA 或者,换句话说,您的代码如下所示:

NSTimeInterval diffX = [dateB timeIntervalSinceDate:dateA];
NSTimeInterval diffY = [dateC timeIntervalSinceDate:dateB];

if (signbit(diffX) == signbit(diffY))
{
    // dateB is in-between dateA and dateC
}
如果您有dateA、dateB和dateC,并且希望检查dateA 或者,换句话说,您的代码如下所示:

NSTimeInterval diffX = [dateB timeIntervalSinceDate:dateA];
NSTimeInterval diffY = [dateC timeIntervalSinceDate:dateB];

if (signbit(diffX) == signbit(diffY))
{
    // dateB is in-between dateA and dateC
}

方法
laterDate
earlierDate
返回
NSDate


您应该改为使用并检查返回值。

方法
laterDate
earlierDate
返回
NSDate

您应该改为使用并检查返回值。

您可以添加一年(两者相同),然后获取1970年的时间,然后进行比较。

您可以添加一年(两者相同),然后获取1970年的时间,然后进行比较。

可能重复的