2013-08-31 2 views
0

Я буду рассчитывать количество дней, основанных на Years.For Ex: Если в этом месяце сентябрь, затем подсчитайте количество дней (сентябрь ... декабрь) на основе текущего года . И после Jan, он будет рассчитываться в следующем году.Рассчитайте количество дней в зависимости от года в ios

Я получаю число месяцев с текущего месяца до конца месяца.

NSDate *curmonth=[NSDate date]; 
NSString *[email protected]"2013-12-31"; 

NSDateFormatter *endmonthformatter=[[NSDateFormatter alloc]init]; 
[endmonthformatter setDateFormat:@"yyyy-MM-dd"]; 
NSDate *endmonth=[endmonthformatter dateFromString:endmonthstr]; 

NSInteger month = [[[NSCalendar currentCalendar] components: NSMonthCalendarUnit 
                fromDate: curmonth 
                toDate: endmonth 
                options: 0] month]; 

NSInteger monthplus=month+1; 
NSInteger count=monthplus; 

NSLog(@"%d",monthplus); 

Но, я не знаю, как сравнить это и рассчитать дни.

Любая идея, пожалуйста, помогите мне

+1

Сравнить? Почему бы вам не получить дни от 'components: fromDate: ...'? – Wain

+0

Вместо 'NSMonthCalendarUnit' использовать' NSMonthCalendarUnit | NSDaysCalendarUnit' – kovpas

+0

Отображает отрицательные значения wain – rajesh

ответ

0

Чтобы получить количество дней, оставшихся в текущем году, вы можете использовать NSCalendar найти разницу дат компонентов для вас. Вы можете указать разные компоненты, но поскольку вам нужны дни, просто используйте NSDayCalendarUnit.

NSCalendar *cal = [NSCalendar currentCalendar]; 

// GET CURRENT YEAR/MONTH/DAY 
NSDate *now = [NSDate date]; 
NSDateComponents *nowComps = [cal components: NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit fromDate: now]; 

// COPY TODAY'S COMPONENTS, BUT CHANGE MONTH AND DAY 
NSDateComponents *lastDayComps = [nowComps copy]; 
lastDayComps.month = 12; 
lastDayComps.day = 31; 

// GENERATE LAST DAY FROM COMPONENTS 
NSDate *lastDay = [cal dateFromComponents: lastDayComps]; 

// CALCULATE DAYS BETWEEN DATES 
NSDateComponents *components = [cal components: NSDayCalendarUnit fromDate: now toDate: lastDay options: 0]; 
NSInteger daysTilEndOfYear = components.day; 
+0

Его отображения dateWithNaturalLanguageString метод не найден – rajesh

+0

Извините, это только OSX. Я обновлю. – MJN

+0

okey.i позаботится – rajesh

Смежные вопросы