2010-02-17 3 views
1

Я хочу рассчитать количество часов, прошедших через день от объекта NSDate (в UT). В принципе, пример должен выглядеть примерно как «17 часов 31 минута».NSDate hours in Cocoa

Спасибо!

ответ

1

Посмотрите на 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); 

Возможно, вы можете избавиться от некоторых приемов.

+0

'интервал NSTimeInterval = [[NSDate dateWithTimeIntervalSinceNow: 0] timeIntervalSinceDate: [NSDate dateWithTimeIntervalSinceReferenceDate: 0]];' должен быть записан в виде 'интервал NSTimeInterval = [NSDate timeIntervalSinceReferenceDate];' – user102008

+0

Там в 60 минут в течение часа не 100: ' int minutes = (int) (доля * 60.0f); ' –