2011-05-16 24 views
2

我的任務的NSDate部分要求我根據用戶選擇的類別顯示事件。類別是 - 今天,本月,本週和本週末。我已經做了'今天'和'這個月',而我在其他兩個人遇到麻煩。基本上我有每個事件的日期範圍(例如,從日期= 03-04-2011,到日期= 03-11-2011)。我想要做的是檢查本週和本週末是否在日期範圍之間。我已經搜索了來源,但找不到我需要的東西。我知道我必須使用NSCalendar,但我不知道如何去做。使用本週和週末檢查兩個NSDates

Detecting if NSDate contains a weekend day

^答案似乎正是我要找的,但我不知道如何使用它。對此或任何其他解決方案的任何幫助將不勝感激。由於

回答

3
- (BOOL)checkForWeekend:(NSDate *)aDate { 
    BOOL isWeekendDate = NO; 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSRange weekdayRange = [calendar maximumRangeOfUnit:NSWeekdayCalendarUnit]; 
    NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:aDate]; 
    NSUInteger weekdayOfDate = [components weekday]; 

    if (weekdayOfDate == weekdayRange.location || weekdayOfDate == weekdayRange.length) { 
    // The date falls somewhere on the first or last days of the week. 
    isWeekendDate = YES; 
    } 
    return isWeekendDate; 
} 

用法:

BOOL isWeekend = [self checkForWeekend:[NSDate date]]; // Any date can be passed here. 

if (isWeekend) { 
    NSLog(@"Weekend date! Yay!"); 
} 
+0

感謝您的詳細答覆!有沒有辦法獲得本週末的NSDate?我需要將日期與我的活動日期進行比較,以檢查它們是否在兩者之間。 – Joe 2011-05-16 06:35:30