Как проверить, находится ли время между 6PM и 11PM MST в Swift? Мне сложно использовать NSDateFormatter, и я чувствую, что должен быть более простой способ.Проверьте, находится ли время в пределах диапазона Swift
ответ
Использование NSCalendar
:
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
calendar.timeZone = NSTimeZone(name: "MST")!
let hour = calendar.component(.Hour, fromDate: date)
let between6And11PM = 18 <= hour && hour < 23
(отредактирован с ОП говорится 11 вечера не должны быть включены)
Использование NSCalendar
и NSDateComponents
. Сделайте поиск в Xcode в строке «Календарные вычисления».
Вы могли извлечь часы, минуты и секунды с даты и записи соединения, если заявление, чтобы проверить, если время находится в диапазоне:
if components.hour >= 18 && components.hour < 23 {
print("The time is between 6PM and 11PM")
}
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([.Hour, .Minute], fromDate: date)
let hour = components.hour
switch hour {
case 18...23:
print("True")
default:
print("False")
}
Это решение работает для пользователя Текущее время. Будут ли люди вне MST использовать приложение?
Я начинаю с строки, как я полагаю, вы делаете (пожалуйста, добавьте больше контекста и объясните, что вы пробовали или, по крайней мере, то, с чем имеете дело в следующий раз).
[Swift 3]
// example of a date-time string
let timeSubstring = "2016-08-06T18:16:11"
// initialize
let datetimeTime = DateFormatter()
// provide format
datetimeTime.dateFormat = "yyyy-MM-ddEEEEEHH:mm:ss"
// converting from time zone
datetimeTime.timeZone = TimeZone(identifier: "MST")
// DateFormatter has been set up, now we can form the date properly
let formDate = datetimeTime.date(from: timeSubstring)
// create your upper and lower bounds (fill in)
let topDate = datetimeTime.date(from: "XXXX-XX-XXXXX:XX:XX")
let bottomDate = datetimeTime.date(from: "XXXX-XX-XXXXX:XX:XX")
// make comparisons
// checks condition left operand is smaller than right operand
if formDate?.compare(other: topDate) == .orderedAscending {
// some code
}
// condition right smaller than left
if formDate?.compare(other: bottomDate) == .orderedDescending {
// some code
}
Или сделать его & & если вы проверяете оба одновременно.
У вас случайно есть 2 'bottomDate' объявления;) – Kametrixom
@Kametrixom О, боже мой, хороший глаз - спасибо –
- 1. Проверьте, находится ли значение в пределах диапазона?
- 2. Проверьте, находится ли номер в пределах диапазона целевого номера
- 3. Проверьте, находится ли значение в пределах диапазона в Rails 3?
- 4. Проверьте, находится ли значение в пределах определенного диапазона
- 5. Проверка того, находится ли время в пределах диапазона
- 6. Определение, находится ли переменная в пределах диапазона?
- 7. Проверьте, находится ли координата в пределах области
- 8. Проверьте диапазон дат находится в пределах диапазона дат
- 9. Проверьте, если текущее время находится в пределах указанного промежутка времени
- 10. Утверждение целое число находится в пределах диапазона
- 11. asp validator - определить, находится ли возраст в пределах диапазона
- 12. проверьте, находится ли номер внутри диапазона или за пределами диапазона
- 13. Как определить, находится ли символ в пределах диапазона в Clojure?
- 14. Проверьте, не находится ли строка в пределах определенного лимита времени
- 15. Проверьте, находится ли курсор мыши в пределах диапазона массива с координатами
- 16. Извлечь время из даты и времени и определить, находится ли время (не дата) в пределах диапазона?
- 17. , проверяя, что число находится в пределах диапазона
- 18. Текст не находится в пределах диапазона ящиков
- 19. Проверьте, не находится ли номер в пределах диапазона, который не работает в PHP?
- 20. Проверьте, не указана ли дата в пределах диапазона PHP strtotime
- 21. Проверьте, если точка находится в пределах полигона
- 22. Определить, находится ли значение, вытащенное из файла, в пределах диапазона
- 23. Как элегантно проверить, находится ли число в пределах диапазона?
- 24. Python Testing ли целое число находится в пределах определенного диапазона
- 25. Как проверить, находится ли значение в пределах диапазона?
- 26. Как проверить, находится ли переменная datetime php в пределах диапазона
- 27. Как утверждать, находится ли значение в пределах диапазона перечислений
- 28. Как узнать, находится ли пользовательский диапазон в пределах HTML-диапазона
- 29. Рассчитайте, находится ли одна координата в пределах диапазона
- 30. Карта андроидов. Проверьте, находится ли центральная камера в пределах границ.
Какова стоимость вашей «даты»? Это даёт true: 'let date = calendar.dateWithEra (1, год: 2016, месяц: 8, день: 16, час: 23, минута: 30, секунда: 0, наносекунда: 0)!' –
@CodeBender ** Shouldn 't ** это терпит неудачу, если оно падает между 11:00 и 11:59? ОП попросил «между 6 вечера и 11 вечера»; т.е. 18:00 <= t <= 23: 00'. «Между 11:00 и 11:59» - это одночасовой интервал _just after_, что спросил OP ...? –