Автоматически увеличивать количество каждый день / Swift - PullRequest
0 голосов
/ 19 июня 2020

Я закодировал приложение SwiftUI, и пользователь может выбрать, сколько дней осталось. Например, он выбирает 20 дней, это должно считаться по кругу. Например, прошло 10 дней, круг должен быть на 50%. Итак, я подумал, что создаю Int, который каждый день увеличивается на единицу. Когда пользователь выбирает 20 дней, значение Int должно начать увеличиваться, а через 10 дней, например, значение Int будет равно 10, а поскольку пользователь выбирает 20 дней, круг должен быть на 50%. Days / Int (которое увеличивается) Но я не знаю, как кодировать Int, который увеличивается каждый день. Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 19 июня 2020

В дополнение к предложению сохранить дату начала и использовать сегодняшнюю дату, чтобы узнать, сколько дней прошло, вы можете использовать это расширение

extension Date {
    func daysSinceDate(_ fromDate: Date = Date()) -> Int {
        let earliest = self < fromDate ? self  : fromDate
        let latest = (earliest == self) ? fromDate : self

        let earlierComponents:DateComponents = Calendar.current.dateComponents([.day], from: earliest)
        let laterComponents:DateComponents = Calendar.current.dateComponents([.day], from: latest)
        guard
            let earlierDay = earlierComponents.day,
            let laterDay = laterComponents.day,
            laterDay >= earlierDay
            else {
            return 0
        }
        return laterDay - earlierDay
    }

    func dateForDaysFromNow(_ days: Int) -> Date? {
        var dayComponent = DateComponents()
        dayComponent.day = days
        return Calendar.current.date(byAdding: dayComponent, to: self)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...