Я пытаюсь определить количество дней високосного года между двумя разными датами для приложения, которое возвращается к XIXC - вот пример метода:Подсчитайте количество дней високосного года в временной разнице в xcode
-(NSInteger)leapYearDaysWithinEraFromDate:(NSDate *) startingDate toDate:(NSDate *) endingDate {
// this is for testing - it will be changed to a datepicker object
NSDateComponents *startDateComp = [[NSDateComponents alloc] init];
[startDateComp setSecond:1];
[startDateComp setMinute:0];
[startDateComp setHour:1];
[startDateComp setDay:14];
[startDateComp setMonth:4];
[startDateComp setYear:2005];
NSCalendar *GregorianCal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
//startDate declared in .h//
startDate = [GregorianCal dateFromComponents:startDateComp];
NSLog(@"This program's start date is %@", startDate);
NSDate *today = [NSDate date];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *temporalDays = [GregorianCal components:unitFlags fromDate:startDate toDate:today options:0];
NSInteger days = [temporalDays day];
// then i will need code for the number of leap year Days
return 0;//will return the number of 2/29 days
}
Таким образом, у меня есть число TOTAL дней между датами. Теперь мне нужно вычесть количество високосных дней ???
PS - Я знаю, что есть два високосный год дней в этом примере, но приложение будет вернуться к 19-м веке ...
Это будет отключено на один, если конечный год будет високосным годом. Тест должен быть currentYear <= (startYear + numYears). – Mark
@RoshDamunki 1900 - не високосный год. Проверьте википедию, годы, делящиеся на 100, но не 400, а не високосные годы. –
Да, я видел это сразу после публикации. Кажется, сейчас он отлично работает. Спасибо спасибо – RoshDamunki