我不确定,但有时我的if语句会失败并显示错误的内容 有什么想法吗?
-(void)updateLabel{
if (today > Date) {
[only setHidden:YES];
[untilRelease setHidden:YES];
[theLabel setText:@"IS OUT"];
} else {
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int units = NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *components = [calendar components:units fromDate:[NSDate date] toDate:Date options:0];
[theLabel setText:[NSString stringWithFormat:@"%d %@, %d %@ \n %d %@, %d %@ %d %@", [components month], @"Months", [components day], @"Days", [components hour], @"Hours", [components minute], @"Minutes and", [components second], @"Seconds"]];
}}
我今天定义为[NSDate date],Date是一个纪元数字。
任何帮助都会很棒
答案 0 :(得分:1)
由于它们都是NSDate
个实例,请执行此操作,
NSComparisonResult result = [today compare:Date];
if ( result == NSOrderedDescending ){ // today > Date
// After Date
} else {
// Before Date
}
原始答案
如果today
为[NSDate date]
且Date
为纪元号,则表示您正在比较错误。在比较之前,您应该将today
转换为纪元号。
long currentTime = [today timeIntervalSince1970];
if ( currentTime > Date ) {
// After `Date`
} else {
// Before `Date`
}