Ios 如何在目标c中查找一个月的星期五和一个月的日期

Ios 如何在目标c中查找一个月的星期五和一个月的日期,ios,objective-c,nsdate,nsdateformatter,Ios,Objective C,Nsdate,Nsdateformatter,我正在开发一个使用日期、月份、年份的应用程序。我想要当前月份的星期五日期和当前月份的日期,因为当前月份可以有28、29、30、31天。我已尝试使用本年度获取本年度月份。但我不知道上面的代码。这是我的密码 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSDate *today = [NSDate date]; NSCalendar *currentCalend

我正在开发一个使用日期、月份、年份的应用程序。我想要当前月份的星期五日期和当前月份的日期,因为当前月份可以有28、29、30、31天。我已尝试使用本年度获取本年度月份。但我不知道上面的代码。这是我的密码

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

NSDate           *today           = [NSDate date];
NSCalendar       *currentCalendar = [NSCalendar currentCalendar];
NSDateComponents *yearComponents  = [currentCalendar components:NSYearCalendarUnit  fromDate:today];
int currentYear  = [yearComponents year];
for(int months = 0; months < 12; months++)
{
    NSString *monthName = [NSString stringWithFormat:@"%@ %i",[[dateFormatter monthSymbols]objectAtIndex: months],currentYear];
    NSLog(@"%@ %i",[[dateFormatter monthSymbols]objectAtIndex: months],currentYear);
    [monthArray addObject:monthName];
}
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
NSDate*今天=[NSDate日期];
NSCalendar*currentCalendar=[NSCalendar currentCalendar];
NSDateComponents*yearComponents=[currentCalendar components:NSYearCalendarUnit fromDate:today];
int currentYear=[yearComponents year];
对于(整数个月=0;个月<12;个月++)
{
NSString*monthName=[NSString stringWithFormat:@“%@%i”,[[dateFormatter monthSymbols]对象索引:月份],当前年份];
NSLog(@“%@%i”,[[dateFormatter monthSymbols]对象索引:月份],当前年份);
[monthArray addObject:monthName];
}

您可以将
NSDateComponents
NSCalendar的
dateFromComponents
结合使用:方法:

试着像这样

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *c = [[NSDateComponents alloc] init];
    [c setYear:2013];
    [c setWeekday:6];//1=sun,2=mon .....
    for (int i = 1; i <= 12; i++)
    {
        [c setMonth:i];
        for (int j=1; j<=5; j++)
        {
            [c setWeekdayOrdinal:j];
            NSDate *date = [gregorian dateFromComponents:c];
            NSLog(@"Date[%i]: %@",i,date);

        }

    }
NSCalendar*gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*c=[[NSDateComponents alloc]init];
[c设定年份:2013年];
[c setWeekday:6]//1=太阳,2=周一。。。。。

对于(int i=1;i)它对我有效。你能给我关于获取当前月份日期的答案吗?只需将
setMonth
设置为NSDateComponents的当前月份。我尝试过。但它只显示当前日期。:(NSDateComponents*d=[[NSDateComponents alloc]init];[d setYear:2013];[d setMonth:10];NSDate*date1=[gregorian dateFromComponents:d];NSLog(@“Date1:%@”,Date1);您是否尝试过使用
setWeekday
进行循环?否。如果我添加了循环,如何通过循环的限制。因为一个月可以有28、29、30、31天??