Вычислить разницу времени в Какао

Никогда не вызывайте Thread.sleep (...) из потока событий Swing, так как это приведет к тому, что сам поток событий будет спать. Поскольку этот поток отвечает за всю окраску Swing и взаимодействие с пользователем, это заставит ваше приложение спать.

Если все, что вы хотите, это задержка на дисплее, тогда рассмотрите использование Swing Timer .

Если, с другой стороны, поток событий скомпрометирован долговременной задачей, то выполняйте задачу в фоновом режиме, используя SwingWorker (как предположил Гийом 1+) .

13
задан S.L. Barth 22 July 2012 в 08:07
поделиться

3 ответа

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HHmmss"];

NSDate *date1 = [dateFormatter dateFromString:@"161500"];
NSDate *date2 = [dateFormatter dateFromString:@"171500"];

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // diff = 3600.0
33
ответ дан Can Berk Güder 22 July 2012 в 19:07
поделиться
  • 1
    @habakuk я соглашаюсь. Также обратите внимание что OP' s проект первоначально предназначался для сетевых 4.0. Так переключаясь назад won' t представляют любые новые ошибки компилятора. – Jonny Best 4 November 2013 в 14:37

Класс для управления датами NSDate. Метод для получения временных интервалов -timeIntervalSinceDate:. Результат NSTimeInterval значение, которое является double представление интервала в секундах.

можно создать NSDate объект от NSString с +dateWithString:, при условии, что дата отформатирована как 24.03.2001 10:45:32 +0600 .

10
ответ дан mouviciel 22 July 2012 в 19:07
поделиться

Я создал бы подкласс NSFormatter для парсинга временных стоимостей в том формате от входных данных (можно поместить один на текстовое поле, чтобы автоматически преобразовать ввод данных пользователем или использовать его для парсинга от источника данных в коде). Имейте его, возвращают объединенное число секунд как NSTimeInterval (дважды представляющий секунды) обернутый в NSNumber. Оттуда легко вычесть различие и отобразить его с помощью того же класса NSFormatter, который Вы создали. И в парсинге и в отображении значений, Вы - одно ответственное для записи преобразования кода с секунд к hours:minutes:seconds или безотносительно формата, который Вы любите. Вы могли также преобразовать эти значения в NSDate как упомянутый mouviciel, если он имеет смысл для Вашего приложения. Просто имейте в виду, что Вы всегда собираетесь быть хранением разницы во времени со ссылочной даты, обычно Jan 1-й 1970 (NSDate имеет методы, чтобы сделать это для Вас).

1
ответ дан Marc Charbonneau 22 July 2012 в 19:07
поделиться
  • 1
    @unixsmurf < < все программное обеспечение будет работать как Безопасное (удаляющий любые преимущества безопасности). Я ДУМАЮ здесь, Вы хотите сказать НЕЗАЩИЩЕННЫЙ. Исправьте меня, если я неправ. еще можно отредактировать для отражения НЕЗАЩИЩЕННЫЙ. СПАСИБО ЗА Подробный ответ:) – kumar 4 July 2013 в 17:04
Другие вопросы по тегам:

Похожие вопросы: