0

から曜日をNSDate数値として取得する必要があります。

たとえば、今日が木曜日の場合は 4 番、金曜日の場合は 5 番になります。

この機能はすでに存在しますか?

4

3 に答える 3

4

NSCalendar次のように使用します。

NSCalendar *calObject = [NSCalendar currentCalendar];
NSDateComponents *comp = [calObject components:NSWeekdayCalendarUnit 
                                      fromDate:yourDateHere]; //provide date here

NSInteger day = [comp weekday]; //will return  1 = Sunday, 2 = Monday, etc.
于 2012-12-13T13:09:20.783 に答える
0

ドキュメントのサイス: https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSCalendar_Class/Reference/NSCalendar.html

使用する:

NSCalendar * calendar = [NSCalendar  currentCalendar];
[calendar components:NSWeekdayCalendarUnit fromDate:date];
int weekday = [weekdayComponents weekday];

ただし、このコードでは、1 は日曜日です。

于 2012-12-13T13:09:04.393 に答える
-2

要件に応じて、次のコードは今日、つまり2012年12月13日木曜日に「4」を与えます。

NSMutableDictionary *weeks=[NSMutableDictionary new];
[weeks setObject:@"1" forKey:@"Monday"];
[weeks setObject:@"2" forKey:@"Tuesday"];
[weeks setObject:@"3" forKey:@"Wednesday"];
[weeks setObject:@"4" forKey:@"Thursday"];
[weeks setObject:@"5" forKey:@"Friday"];
[weeks setObject:@"6" forKey:@"Saturday"];
[weeks setObject:@"7" forKey:@"Sunday"];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEEE"];

NSLog(@"%@",[weeks objectForKey:[dateFormatter stringFromDate:[NSDate date]]]);//gives you 4 for today i.e. Thursday 13 Dec 2012

また

少しトリッキー

NSCalendar *calender = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [calender components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
NSInteger dayCount = [dateComponents weekday]-1;
if (dayCount==0) {//as sunday will become 0, you need 7.
    dayCount=7;
}
NSLog(@"Day count : %ld",dayCount);
于 2012-12-13T13:12:30.550 に答える