简体   繁体   English

如何在Objective c中获取当月的日期?

[英]How to get dates of current month in Objective c?

I am developing a app which uses the date, month, year. 我正在开发一个使用日期,月份,年份的应用程序。 I want the current month dates,because current month can have 28,29,30,31 days. 我想要当前的月份日期,因为当前月份可以有28,29,30,31天。 I have tried to get current year months. 我试图获得当年的月份。 but i don't know the code for above. 但我不知道上面的代码。 here is my code. 这是我的代码。

  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];
}

To get day you can you NSDateComponents 为了获得成功,你可以获得NSDateComponents

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

You can add more component units as you need like : NSMonthCalendarUnit,NSWeekdayCalendarUnit,NSYearCalendarUnit 您可以根据需要添加更多组件单元: NSMonthCalendarUnit,NSWeekdayCalendarUnit,NSYearCalendarUnit

NSCalendar and its rangeOfUnit:inUnit:forDate method can be use. NSCalendar及其rangeOfUnit:inUnit:forDate方法可以使用。 For eg., to get the number of days in the current month: 例如,要获取当月的天数:

NSCalendar *cal = [NSCalendar currentCalendar];
NSRange range = [cal rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];
NSUInteger numberOfDaysInMonth = range.length;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM