[英]How to compare two date?
我有三個日期:(1)previousDate(2)currentDate(3)nextDate,我想檢查currentDate是否晚於上一個日期,早於nextDate。 我怎么做?
NSDateFormatter *df= [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *dt1 = [[NSDate alloc] init];
NSDate *dt2 = [[NSDate alloc] init];
dt1=[df dateFromString:@"2011-02-25"];
dt2=[df dateFromString:@"2011-03-25"];
NSComparisonResult result = [dt1 compare:dt2];
switch (result)
{
case NSOrderedAscending: NSLog(@"%@ is greater than %@", dt2, dt1); break;
case NSOrderedDescending: NSLog(@"%@ is less %@", dt2, dt1); break;
case NSOrderedSame: NSLog(@"%@ is equal to %@", dt2, dt1); break;
default: NSLog(@"erorr dates %@, %@", dt2, dt1); break;
}
我想你正在使用NSDate類。
您可以使用isEqualToDate來比較兩個NSDate對象。 而且,檢查currentdate的earlyDate和laterDate比前一個日期更大,並且小於下一個日期。
我只是用它來檢查它:
if ([[currentDate laterDate:nextDate] isEqualToDate:nextDate]) {
NSLog(@"currentDate is earlier than nextDate");
}
if ([[currentDate laterDate:previousDate] isEqualToDate:currentDate]) {
NSLog(@"currentDate is later then previousDate");
}
對我來說工作得很好! 感謝@Luca Matteis暗示“LaterDate:”
我們可以在swift 5.0中輕松比較兩個日期
switch dateOld.compare(dateNew) {
case .orderedAscending:
// Put your code for greater
break
case .orderedDescending:
// Put your code less
break;
case .orderedSame:
// Put your code for equal
break
}
NSDate對象還實現了記錄良好的-compare:方法。
只需使用NSDate
的compare
消息執行兩次比較:
if ([previousDate compare:currentDate] == NSOrderedAscending &&
[nextDate compare:currentDate] == NSOrderedDescending) {
NSLog(@"current date is in between previous and next date (non-inclusive)");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.