Как обновить дату, установленную с NSDatePicker, таким образом, чтобы это было в будущем и сохраняло часы? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь использовать NSDatePicker, чтобы установить время, когда должно произойти событие. К сожалению, однако, этот элемент управления используется для установки полной даты, и поэтому возможно, что когда мне придется использовать значение, оно принадлежит прошлому. Моя цель - использовать DatePicker для установки времени в будущем.

enter image description here

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

Вот код, который я использую:

// getting date value from a NSDatePicker
let date = myDatePicker.dateValue

// learn if the date is in future or in past
if date.timeIntervalSince(currentDate as Date).sign == FloatingPointSign.minus {

    print("\(date) is in past") // update adding days to make it in future

    // get the hour and minute from the date
    let timeFormatter = DateFormatter()
    timeFormatter.dateFormat = "HH:mm" // only hour and second
    let timeString = timeFormatter.string(from: date as Date)

    print("\(timeString)") // here I get "18:10" or "6:10 PM" based on system preferences (12 or 24)

    // create a date in future that use this hours

} else {

    // the date is already in future, just use it
    ...
}

Я нашел здесь несколько вопросов о переполнении стека, которые помогают мне лучше понять, как использовать NSDateFormatter, а также отличный онлайн-учебник http://www.knowstack.com/swift-nsdateformatter/. Я также нашел некоторые вопросы, которые похожи на мои, например: возвращает дату час в будущем и init] возвращает дату час в прошлом? но они мне не помогли.

Документация для разработчиков Apple: NSDatePicker NSDateFormatter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...