Question

Je veux convertir un float en NSDate

J'ai converti un NSDate en float en utilisant ceci:

// 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; 

après quelques trucs mathématiques que je fais sur la variable mytime, je reçois beaucoup d'autres moments dans le même format flottant.

Comment transformer un float en NSDate?

Merci!

Était-ce utile?

La solution

Si vous convertissez le temps que vous avez calculé en secondes (donc, mon heure * 60), vous pouvez utiliser dateWithTimeIntervalSinceReferenceDate: pour revenir à un NSDate. D'après les calculs que vous faites, il semble que la date référencée ici serait 00:00 pour la journée en question. Comme Jason l'a mentionné, il existe probablement une meilleure façon de faire ce que vous essayez d'accomplir.

De plus, vous devez modifier votre " myTime " calcul en divisant par 60,0 si vous voulez réellement les minutes; votre exemple de code divise une valeur entière inférieure à 60 par la valeur entière 60, qui sera toujours 0.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top