爲什麼if
條件,比較兩個日期時間,doens't工作? 如果他們需要成爲NSDate
,我該如何轉換它們?比較日期時間
代碼:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
爲什麼if
條件,比較兩個日期時間,doens't工作? 如果他們需要成爲NSDate
,我該如何轉換它們?比較日期時間
代碼:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
要比較兩個NSDates(比如,dateOne和dateTwo),使用此
switch ([dateOne compare:dateTwo]){
case NSOrderedAscending:
NSLog(@"NSOrderedAscending");
break;
case NSOrderedSame:
NSLog(@"NSOrderedSame");
break;
case NSOrderedDescending:
NSLog(@"NSOrderedDescending");
break;
}
有這個定義的方法。試試下面的代碼做比較兩個日期:)
switch ([[[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] compare [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]]){
case NSOrderedAscending:
NSLog(@"NSOrderedAscending");
break;
case NSOrderedSame:
NSLog(@"NSOrderedSame");
break;
case NSOrderedDescending:
NSLog(@"NSOrderedDescending");
break;
}
謝謝!有效!你現在怎麼在'case'裏添加'AlertView'?我得到錯誤「預期的表達式」。 – 2013-02-20 05:35:28
另一種方式來比較日期將檢查2個日期之間的間隔是這樣,if ([date1 timeIntervalSinceDate:date2] > 0)
。 date1
是最新的日期。
編輯:因爲我比較2個NSDate
就像這個
向下投票將是無效的。
if ([[NSDate date] timeIntervalSinceDate:[NSDate date]])
{
// Do something
}
我沒有收到任何錯誤。您正在比較2 NSString
這將是一個問題,因爲沒有這樣的方法NSString
。
錯誤:'NSString'可能不會響應'timeIntervalSinceDate:' – 2013-02-20 05:39:59
你想比較2'NSString'還是2'NSDate'?你說你想比較'NSDate's。閱讀課程參考資料。如果不理解所涉及的類和方法,請不要投票。 – esh 2013-02-20 05:45:05
在帖子後,我清楚,我試圖比較兩個'NSStrings',如果需要,我怎麼可以將它們轉換爲'NSDate'。 – 2013-02-20 05:53:34
謝謝!有效!你現在怎麼在'case'裏添加'AlertView'?我得到錯誤「預期的表達式」。 – 2013-02-20 05:40:35
switch([dateOne compare:dateTwo]){ case NSOrderedAscending:{ UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:title message:@「Alert」delegate:nil cancelButtonTitle:@「OK」otherButtonTitles:nil]; \t [alertView performSelectorOnMainThread:@selector(show)withObject:nil waitUntilDone:YES]; } } – Shashank 2013-02-20 05:49:35