Я хочу рассчитать количество часов, прошедших через день от объекта NSDate (в UT). В принципе, пример должен выглядеть примерно как «17 часов 31 минута».NSDate hours in Cocoa
Спасибо!
Я хочу рассчитать количество часов, прошедших через день от объекта NSDate (в UT). В принципе, пример должен выглядеть примерно как «17 часов 31 минута».NSDate hours in Cocoa
Спасибо!
Чтобы извлечь NSDateComponents
, вам необходимо использовать NSCalendar
.
Посмотрите на Erica Sadun's NSDate utilities. Вы можете использовать их в своем проекте или просто получить вдохновение в том, как решить вашу проблему.
Но, чтобы ответить на ваш конкретный вопрос, это довольно просто, поскольку NSDates в основном просто подсчитывают секунды со времени отсчета. Это работает:
NSTimeInterval interval = [[NSDate dateWithTimeIntervalSinceNow:0] timeIntervalSinceDate:[NSDate dateWithTimeIntervalSinceReferenceDate:0]];
interval = interval/3600.0f;
float hours;
float fraction;
fraction = modff(interval, &hours);
int minutes = (int)(fraction * 100.0f);
NSLog(@"%d hours and %d minutes", (int)hours, (int)minutes);
Возможно, вы можете избавиться от некоторых приемов.
'интервал NSTimeInterval = [[NSDate dateWithTimeIntervalSinceNow: 0] timeIntervalSinceDate: [NSDate dateWithTimeIntervalSinceReferenceDate: 0]];' должен быть записан в виде 'интервал NSTimeInterval = [NSDate timeIntervalSinceReferenceDate];' – user102008
Там в 60 минут в течение часа не 100: ' int minutes = (int) (доля * 60.0f); ' –