преобразование числа с плавающей точкой в ​​NSDate - PullRequest
3 голосов
/ 10 мая 2009

Я хочу преобразовать число с плавающей точкой в ​​NSDate

Я преобразовал NSDate в число с плавающей точкой, используя:

// Turn the date into Integers 
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
NSCalendarUnit unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;  
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:nsdate_wakeTime];  
NSInteger hour = [dateComponents hour];  
NSInteger min = [dateComponents minute];  

//Convert the time in 24:60 to x.x format.
float myTime = hour + min/60; 

после некоторых математических операций, которые я делаю с переменной mytime, я получаю кучу других раз в том же формате с плавающей точкой.

Как мне превратить поплавок в NSDate?

Спасибо!

1 Ответ

2 голосов
/ 12 мая 2009

Если вы конвертируете вычисленное вами время в секунды (то есть, mytime * 60), то вы можете использовать dateWithTimeIntervalSinceReferenceDate:, чтобы вернуться к NSDate. Из математики, которую вы делаете, похоже, что указанная здесь дата будет 00:00 для рассматриваемого дня. Однако, как упоминал Джейсон, возможно, есть лучший способ сделать то, что вы пытаетесь достичь.

Кроме того, вам нужно изменить вычисление myTime на деление на 60.0, если вы действительно хотите минуты; Ваш пример кода делит целочисленное значение меньше 60 на целочисленное значение 60, которое всегда будет равно 0.

...