converter um float para NSDate
-
20-08-2019 - |
Pergunta
Eu quero converter um float para um NSDate
I converteu um NSDate em um flutuador usando este:
// 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;
depois de algumas coisas de matemática que eu faço sobre a variável Mytime eu recebo um monte de outras vezes no mesmo formato float.
Como posso transformar uma bóia em um NSDate?
Obrigado!
Solução
Se você converter o tempo que você calculado para segundos (assim, Mytime * 60), então você pode usar dateWithTimeIntervalSinceReferenceDate:
para voltar a um NSDate
. Desde a matemática que você está fazendo, parece que a data referenciada aqui seria 0:00 para o dia em questão. Como Jason mencionou, porém, há provavelmente uma maneira melhor de fazer o que você está tentando realizar.
Além disso, você precisa mudar a sua computação "MyTime" para dividir por 60,0 se você realmente quer os minutos; seu código de amostra é dividir um valor inteiro inferior a 60 pelo valor inteiro 60, que será sempre 0.