Как обнулить секунды для NSDate

Я исследовал случайную разработку игр, и я вижу большой потенциал для Silverlight в том пространстве. Разработка флеш-игры, очевидно, намного более широко распространена, но как Вы видите в этом вопрос , рабочий процесс для разработки флеш-игры включает несколько инструментов, которые не обязательно играют хорошо вместе несмотря на их оба, сделанные Adobe. Я сделал некоторую работу разработки прототипа в Silverlight, и я думаю, что интеграция между Смешением и VS2008 делает Silverlight сильным соперником.

15
задан Wyetro 6 August 2014 в 04:09
поделиться

1 ответ

NSDate является неизменным, поэтому вы не можете изменять его время. Но вы можете создать новый объект даты, который привязывается к ближайшей минуте:

NSTimeInterval time = floor([date timeIntervalSinceReferenceDate] / 60.0) * 60.0;
NSDate *minute = [NSDate dateWithTimeIntervalSinceReferenceDate:time];

Изменить, чтобы ответить на комментарий Ули

Базовая дата для NSDate - 1 января 2001 года, 0:00 по Гринвичу. С тех пор были добавлены две дополнительные секунды: 2005 и 2010, поэтому значение, возвращаемое [NSDate timeIntervalSinceReferenceDate] , должно быть отключено на две секунды.

Это не тот случай: timeIntervalSinceReferenceDate точно синхронно со временем на стене.

Отвечая на вопрос, я не удостоверился, что это действительно так. Я просто предположил, что Mac OS будет вести себя так же, как время UNIX (эпоха 1970 года):

14
ответ дан 1 December 2019 в 02:02
поделиться