-3

I have an objective-c exsample how to count a days diference as number of midnites, published in Apple's "Date and Time Programming Guide". Is it posible to do the same in Swift?

    @implementation NSCalendar (MySpecialCalculations)
-(NSInteger)daysWithinEraFromDate:(NSDate *) startDate toDate:(NSDate *) endDate
{
     NSInteger startDay=[self ordinalityOfUnit:NSDayCalendarUnit
          inUnit: NSEraCalendarUnit forDate:startDate];
     NSInteger endDay=[self ordinalityOfUnit:NSDayCalendarUnit
          inUnit: NSEraCalendarUnit forDate:endDate];
     return endDay-startDay;
}
@end
nikolayDudrenov
  • 159
  • 2
  • 9

2 Answers2

0

Based on basic Objective-C to Swift transformation documentation:

extension NSCalendar {
  public func daysApart (sd: NSDate, ed: NSDate) -> Int {
    return ordinalityOfUnit(.DayCalendarUnit, inUnit: .EraCalendarUnit, forDate: ed) -
           ordinalityOfUnit(.DayCalendarUnit, inUnit: .EraCalendarUnit, forDate: sd)
  }
}
GoZoner
  • 67,920
  • 20
  • 95
  • 145
0

I would do something like this:

extension NSCalendar {
    func daysWithinEraFromDate(startDate: NSDate, toDate endDate: NSDate) -> NSInteger {
        let startDay = self.ordinalityOfUnit(.DayCalendarUnit, inUnit: .EraCalendarUnit, forDate: startDate)
        let endDay = self.ordinalityOfUnit(.DayCalendarUnit, inUnit: .EraCalendarUnit, forDate: endDate)
        return endDay - startDay
    }

}
Eric Aya
  • 69,473
  • 35
  • 181
  • 253