преобразование числа с плавающей запятой в NSDate

StackOverflow https://stackoverflow.com/questions/844367

  •  20-08-2019
  •  | 
  •  

Вопрос

Я хочу преобразовать число с плавающей запятой в 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?

Спасибо!

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top