Method to get difference between two dates :-

ex :-

simulator-screen-shot-22-feb-2017-2-56-24-pm                   simulator-screen-shot-22-feb-2017-2-56-37-pm

 

static func getDateDifferenceforDate(_ pobjFirstDate: Date, andDate pobjLastDate: Date) -> String {
        
        var strTime: String
        let distanceBetweenDates: TimeInterval = pobjLastDate.timeIntervalSince(pobjFirstDate)
        let secondsInAnHour: Double = 3600
        let daysBetweenDates: Int = Int((distanceBetweenDates / secondsInAnHour) / 24)
        let weekBetweenDate:Int = Int((distanceBetweenDates / secondsInAnHour) / (24*7))
        
        if weekBetweenDate > 48{
            strTime = "\(Int(weekBetweenDate)/4/12) \(STRYEARAGO)"
            return strTime
        }
        if weekBetweenDate >= 4{
            strTime = "\(Int(weekBetweenDate)/4) \(STRMONTHAGO)"
            return strTime
        }
        if weekBetweenDate > 0{
            strTime = "\(Int(weekBetweenDate)) \(STRWEEKAGO)"
            return strTime
        }
        
        if daysBetweenDates > 0  && daysBetweenDates <= 1 {
            strTime = "\(Int(daysBetweenDates)) \(STRDAYAGO)" 
            return strTime 
        } 
        else if daysBetweenDates > 0 {
            strTime = "\(Int(daysBetweenDates)) \(STRDAYSAGO)"
            return strTime
        }
        
        let hoursBetweenDates: Int = Int((distanceBetweenDates / secondsInAnHour))
        if hoursBetweenDates > 0 && hoursBetweenDates <= 1 { 
            strTime = "\(Int(hoursBetweenDates)) \(STRHOURAGO)" 
            return strTime 
        }
        else if hoursBetweenDates > 1 {
            strTime = "\(Int(hoursBetweenDates)) \(STRHOURSAGO)"
            return strTime
        }
        
        let minutesBetweenDates: Int = Int((distanceBetweenDates / secondsInAnHour) * 60)
        if minutesBetweenDates > 0 && minutesBetweenDates <= 1 { 
            strTime = "\(Int(minutesBetweenDates)) \(STRMINUTEAGO)" 
            return strTime 
        } 
        else if minutesBetweenDates > 0 {
            strTime = "\(Int(minutesBetweenDates)) \(STRMINUTESAGO)"
            return strTime
        }
        
        if minutesBetweenDates == 0 {
            strTime = STRFEWSECONDSAGO
            return strTime
        }
        
        return STREMPTY
    }

You may also like

Leave a Reply