2016-08-19 3 views
0

매우 간단한 사례가 있지만 iDev의 "초기 단계"수준 때문에 웬일인지 그것을 처리 할 수있는 올바른 방법을 찾을 수 없습니다. 내 앱을 사용하는 동안 사용자에게 하루 동안 몇 가지 제한이 있습니다. NSUserDefaults에서 사용자 작업의 특정 횟수 후에 제한을 설정합니다. 지금은 NSDate 값이어야한다고 생각하지만 확실하지 않습니다. 사용자가 작업을 요청할 때마다 앱은 제한이 없는지 확인해야합니다. 올바르게 확인하는 방법? 예를 들어, 오늘 오전 9시에 사용자는 한도를 벗어 났고 앱은 자정에 모든 작업을 제한해야합니다. 다음날 오전 0시 1 분에 한계를 확인한 후 "녹색"이어야합니다.NSDate 자정 이후 다음 날

첫째 : 현재 시간을 다음날 도착 (있는 NSDate)

조금 혼란, 나는

+1

두 날짜를 비교하는 중에 멈추었습니까? – holex

+0

@holex 문제는 현재 시간에 따라 NSDate를 생성하는 데 있습니다. 예 : 이제 08/19/2016 01:38 AM이고 NSDate 08/20/2016 00:01 AM을 만들어야합니다. –

답변

1

의 첫 순간의 날짜를 반환합니다. 이 컴파일하는 경우

public class func getTomorrow() -> NSDate { 
    let cal = NSCalendar.currentCalendar() 
    let today = NSDate() 
    let dateComp = cal.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: today) 
    dateComp.day = dateComp.day + 1 
    dateComp.hour = 0 
    dateComp.minute = 1 
    dateComp.second = 0 
    return cal.dateFromComponents(dateComp)! 
} 

내가 확인하지 않은,하지만 그것을 잘해야합니다 : 함수는 NSDateComponents 클래스를 사용하여, 다음 날의 첫 번째 분으로 시간을 설정합니다. 도움이 되었기를 바랍니다.

1

, 당신은이 API를 NSCalendar 클래스를 사용할 수 있습니다 다음 날의 시작을 얻으려면 :(알고 :

는 지정된 날짜에 특정 구성 요소를 추가하여 계산 된 절대 시간 을 나타내는 새로운있는 NSDate 객체를 리턴

01. 다음있는 NSDate 다음 날 본 첫 순간 얻을

NSDateComponents *comps = [[NSDateComponents alloc] init]; 
[comps setDay:1]; 

:

당신의 comps 매개 변수는 같은 단지 Day 값 = 1이 있어야합니다.

여기 스위프트의 솔루션입니다 주어진 날짜

- (NSDate *)startOfDayForDate:(NSDate *)date 
관련 문제