1. 오늘과 특정날 비교하기
1 2 3 4 5 6 7 | - (NSInteger)DateCompareToNow:(NSDate *)date{ NSDateFormatter* df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy-MM-dd"]; NSDate *targetDate = [mdf dateFromString:[mdf stringFromDate:date]]; NSInteger result = (int)[targetDate timeIntervalSinceNow] / (60*60*24); return result; } | cs |
* [targetDate timerIntervalSinceNow] = NSDate에서 제공하는 타깃 날짜와 오늘날짜 사이의 값. (단위 : 초단위)
- > https://developer.apple.com/documentation/foundation/nsdate/1407937-timeintervalsincenow?language=objc
초단위로 제공되는 값에 의하여 '일' 비교를 하실거면 위와 같이 60*60*24를 해주면 일단위 차이값이 나옵니다.
Ex 1 ) today = 20180412 || param date = 20180412
result = 0;
Ex 2) today = 20180412 || param date = 20180413
result = 1;
그렇다면 하루전날과 비교하면 [-1]이 나오겠죠..?ㅎㅎ..
그럼 위의 것을 활용하여 간단한 응용도 작성해보겠습니다.
2. 특정 두개의 날 비교하기
1 2 3 4 5 6 7 8 9 10 11 12 | - (NSInteger)TimeCompareFromStandToTarget:(NSDate *)standard time:(NSDate *)target{ NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy-MM-dd"]; NSDate* standardDate = [df dateFromString:[df stringFromDate:standard]]; NSDate* targetDate = [df dateFromString:[df stringFromDate:target]]; NSInteger standardResult = (int)[standardDate timeIntervalSinceNow] / (60*60*24); NSInteger targetResult = (int)[targetDate timeIntervalSinceNow] / (60*60*24); return standardResult - targetResult; } | cs |
return 되는 값이 양수라면 stantdard값이 더 미래입니다. [음수라면 target값이 더 미래]
궁굼하신 것이 있다면 댓글달아주세요.
댓글