2016-07-04 1 views
0

가 시작을 찾아 현재 주 동안 종료하려면 전주의 시작과 끝 일을 찾을 수 있습니다 :어떻게이 어떻게 관리

extension NSDate { 
    static func week() -> (NSDate, NSDate) { 
     let calendar = NSCalendar.currentCalendar() 
     calendar.firstWeekday = 2 
     var interval = NSTimeInterval(0) 
     var startOfWeek: NSDate? 
     var endOfWeek: NSDate! 
     calendar.rangeOfUnit(.WeekOfMonth, startDate: &startOfWeek, interval: &interval, forDate: NSDate()) 
     endOfWeek = startOfWeek?.dateByAddingTimeInterval(interval - 1) 

     return (startOfWeek!, endOfWeek) 
    } 
} 

을 내가 시작/끝을 얻기 위해이 코드를 업데이트 할 수있는 방법 지난주의? 당신은 전 주부터 계산 시작할 수 있습니다

+2

이 함수를 호출하고 반환 된 각 날짜에서 7 일을 뺍니다. – zisoft

답변

-3

: 이제 당신이 미래의 과거에보고 싶어 (지금부터)되는 주 제어 할 수 있습니다

let weekInSeconds: Double = 60 * 60 * 24 * 7 
calendar.rangeOfUnit(.WeekOfMonth, startDate: &startOfWeek, interval: &interval, forDate: NSDate(timeIntervalSinceNow: -weekInSeconds)) 

, 미래에 대한 긍정적 인 weekInSeconds의 배수를 (사용하여 주, 지난 주에는 음수, 이번 주에는 0).

+0

일광 절약 시간을 사용하는 모든 지역에서 23 일, 24 시간 또는 25 시간이 될 수있는 올바르지 않습니다. –

+0

맞아요. 그래서 NSTimeZone을 사용하여 그 함수를 찾아 내고 weekInSeconds를 미세 조정해야합니다. – deebugger