3

我正在开发一个使用日期、月份、年份的应用程序。我想要当前月份的日期,因为当前月份可以有 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];
}
4

2 回答 2

9

要获得一天,您可以使用 NSDateComponents

NSDate *date = [NSDate date];
NSCalendar *gregorian = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [gregorian components:(NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit) fromDate:date];
NSInteger day = [dateComponents day];

您可以根据需要添加更多组件单元,例如:NSMonthCalendarUnit,NSWeekdayCalendarUnit,NSYearCalendarUnit

于 2013-10-30T07:15:54.617 回答
7

NSCalendar并且rangeOfUnit:inUnit:forDate可以使用它的方法。例如,要获取当月的天数:

NSCalendar *cal = [NSCalendar currentCalendar];
NSRange range = [cal rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];
NSUInteger numberOfDaysInMonth = range.length;
于 2013-10-30T07:06:27.357 回答