-2

I'm trying to days between two dates in swift3 by following coding. Unfortunately, I got error and running failed. Please let me know how to solve and how to get calendar days between two dates in swift3.

static func getDaysList(_ startDate:String, endDate:String, interval:Int) -> [Date] {
    var dayRange = [Date]()
    let inter = TimeInterval(interval * 60 * 60)
    let ti:TimeInterval = inter
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = datetimeformat
    let dateTo = dateFormatter.date(from: endDate)

    var nextDate = dateFormatter.date(from: startDate)
    let endDate = dateTo!.addingTimeInterval(ti)
    var startTime = NSDate()

    while nextDate!.compare(endDate) == ComparisonResult.orderedAscending {
        startTime = nextDate! as NSDate
        dayRange.append(startTime as Date)
        nextDate = nextDate!.addingTimeInterval(ti)
        startTime = nextDate! as NSDate
    }

    return dayRange
}

fatal error: unexpectedly found nil while unwrapping an Optional value

pointed to let endDate = dateTo!.addingTimeInterval(ti)

PPShein
  • 13,309
  • 42
  • 142
  • 227

1 Answers1

-1

Here

 let dateTo = dateFormatter.date(from: endDate)

Your endDate is likely a string that is not in the correct format for your dateFormatter. Therefore dateTo ends up as nil and crashes on:

let endDate = dateTo!.addingTimeInterval(ti)
Frankie
  • 11,508
  • 5
  • 53
  • 60