Iphone 检查iOS目标c中的日期是否在2月5日之前

Iphone 检查iOS目标c中的日期是否在2月5日之前,iphone,ios,objective-c,Iphone,Ios,Objective C,如何检查日期选择器输入的日期是否在某一日期之前,该日期存储为变量,年份不重要 例如,我需要检查日期选择器上选择的日期,让我知道它是在1月5日之前还是1月5日之后。如果结果为true,则应触发IF函数 NSDate * dateOne = [NSDate date]; NSDate *dt1 = NSDate date]; if([dateOne compare:dateTwo] == NSOrderedAscending) { NSLog(@"TRUE"); } 您可以只获取所选日期

如何检查日期选择器输入的日期是否在某一日期之前,该日期存储为变量,年份不重要

例如,我需要检查日期选择器上选择的日期,让我知道它是在1月5日之前还是1月5日之后。如果结果为true,则应触发IF函数

NSDate * dateOne = [NSDate date];
NSDate *dt1 = NSDate date];

if([dateOne compare:dateTwo] == NSOrderedAscending) {
    NSLog(@"TRUE");
}

您可以只获取所选日期的日期和月份,如下所示

NSInteger sDay = [[[yourDatePicker date] stringFromDateWithFormat:@"dd"] integerValue];
NSInteger sMonth = [[[yourDatePicker date] stringFromDateWithFormat:@"MM"] integerValue];
if ( sMonth < 2 || (sMonth  == 2 && sDay < 5) ) {
        NSLog(@"yes its further");
}

您要做的是将当前日期拆分为


到目前为止您尝试了什么?'NSDate*dateOne=[NSDate-date];NSDate*dateTwo=[NSDate-date];如果[dateOne比较:dateTwo]==删除搜索{NSLog@yes更进一步;}我对ios还不熟悉,仍然有点拘泥于事情的运作方式,这没关系。但在提问时,尽可能多地提供意见。请看这个。本年度或任何年度的第5个月?即使是2050年2月3日也将在2月5日之前?这不是一个有趣的问题吗?使用NSDateFormatter有点慢,这也是NSDateComponents的用途。是的,首先我想到了这一点,首先我发布了上面的简单逻辑,然后当使用NSDateFormatter发布新代码时,我看到了你的答案。。但它也能正常工作,伙计…:您的代码在1月5日之后的任何日期都不起作用。因为一天会比五天更晚,但一个月不会。所以2013年1月6日不会通过你的测试。工作很好,但必须先检查一个月,然后日期即使是2050年2月3日也会在2月5日之前?这不是一个有趣的问题吗?你没有检查年份,所以是的。在我的示例中,我只检查月份是否低于2,日期是否低于5,因此日期是否在2月5日之前。
-(NSString*)stringFromDateWithFormat:(NSString*)strDateFormat{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     //[formatter setTimeZone:[NSTimeZone systemTimeZone]];
    [formatter setDateFormat:strDateFormat];
    NSString *str = [formatter stringFromDate:self];
    [formatter release];
    return str;
}
NSCalendar *currentCalendar = [NSCalendar currentCalendar];
NSDateComponents *components = [currentCalendar components:NSDayCalendarUnit | NSMonthCalendarUnit fromDate:[NSDate date]];

if (components.month < 2 || (components.month == 2 && components.day < 5) ){
    // Before the 5th of february.
}