Есть ли способ разделить два операнда DateComponents в быстрой - PullRequest
0 голосов
/ 24 февраля 2019

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

 @IBAction func go(_ sender: UIButton) {
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    let task = Habits(context: context)


    //total number of days started here
    //last date
    let ldate = "2019-02-15"
    let dateformatter = DateFormatter()
    dateformatter.dateFormat = "yy-MM-dd"
    let formatedStartDate = dateformatter.date(from: ldate)
    //last date
    //current date
    let cDate = Date()
    task.sDate = cDate
    //current date
    let components = Set<Calendar.Component>([.day])
    let differenceOfDate = Calendar.current.dateComponents(components, from: formatedStartDate!, to: cDate)
    print("difference starts from here!!")
    print(differenceOfDate)
    //total number of days ended here


    //working days
    let wDate = "2019-02-15"
    let wDateFormatter = DateFormatter()
    wDateFormatter.dateFormat = "yy-MM-dd"
    let wformatedStartDate = wDateFormatter.date(from: wDate)
    let wcDate = Date()
    task.sDate = wcDate
    let wcomponents = Set<Calendar.Component>([.day])
    let wdifferenceOfDate = Calendar.current.dateComponents(wcomponents, from: wformatedStartDate!, to: wcDate)
    print("difference starts from here!!")
    print(wdifferenceOfDate)
    let per = differenceOfDate/wdifferenceOfDate //error:Binary operator '/' cannot be applied to two 'DateComponents' 
    //working days ended here
}

1 Ответ

0 голосов
/ 24 февраля 2019

Если я правильно понял ваш вопрос, вам нужен дневной компонент из differenceOfDate объекта.

Вы можете получить его со значением differenceOfDate.day, равным Optional, поэтому вам нужно использовать if let для условного развертывания,Проверьте ниже код:

let workingDays = 5 //Suppose workingDays is 5.
if let differenceInDay = differenceOfDate.day {
    let divideWithWorkingDay = differenceInDay / workingDays
    print(divideWithWorkingDay) // 1
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...