我正在尝试从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");
}
谢谢, 阿米尔。
答案 0 :(得分:2)
方法laterDate
和earlierDate
返回NSDate
。
您应该使用compare:并检查返回值。
答案 1 :(得分:1)
如果你有 dateA , dateB 和 dateC ,你想检查 dateA &lt; dateB &lt; dateC ,您可以获得 dateA-dateB 和 dateB-dateC 之间的区别,它将为您提供 diffX 和< EM> diffY 。如果 diffX 符号等于 diffY 符号,则表示 dateB 位于 A 和 C之间
或者,换句话说,您的代码将如下所示:
NSTimeInterval diffX = [dateB timeIntervalSinceDate:dateA];
NSTimeInterval diffY = [dateC timeIntervalSinceDate:dateB];
if (signbit(diffX) == signbit(diffY))
{
// dateB is in-between dateA and dateC
}
答案 2 :(得分:0)
您可以添加一年(两者都相同),然后从1970年开始计算时间,然后进行比较。