如何使用Cocoa查找任何给定日期的星期几

12 cocoa objective-c nsdate nscalendar nsdatecomponents

我想弄清楚任何特定日期(即2009年6月27日)的哪一天(即周一,周五......)

谢谢.

Jef*_*man 28

我一直在做:

NSDateFormatter* theDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[theDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[theDateFormatter setDateFormat:@"EEEE"];
NSString *weekDay =  [theDateFormatter stringFromDate:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)

这有额外的好处,让您选择如何返回工作日(通过更改setDateFormat中的日期格式字符串:call

有关更多信息,请访问:

http://developer.apple.com/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369


Thi*_*hib 16

您可以查看NSDate和NSCalendar类.例如,这里这里

它们提供以下代码:

NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
                [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];
NSInteger day = [weekdayComponents day];
NSInteger weekday = [weekdayComponents weekday];
Run Code Online (Sandbox Code Playgroud)


Chu*_*uck 6

使用NSCalendar和NSDateComponents.如NSDateComponents文档中所示:

NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:date];
int weekday = [weekdayComponents weekday];
Run Code Online (Sandbox Code Playgroud)