Je souhaite calculer le nombre d'heures passées un jour à partir d'un objet NSDate (en UT). Fondamentalement, l'exemple devrait ressembler à "17 heures et 31 minutes".NSDate hours in Cocoa
Merci!
Je souhaite calculer le nombre d'heures passées un jour à partir d'un objet NSDate (en UT). Fondamentalement, l'exemple devrait ressembler à "17 heures et 31 minutes".NSDate hours in Cocoa
Merci!
Vous devez utiliser un NSCalendar
pour extraire le NSDateComponents
de cette date.
Jetez un oeil à Erica Sadun's NSDate utilities. Vous pouvez soit les utiliser dans votre projet ou simplement vous inspirer sur la façon de résoudre votre problème.
Mais pour répondre à votre question particulière, c'est assez facile, car les NSDates ne comptent en fait que quelques secondes depuis une heure de référence. Cela fonctionne:
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);
Peut-être que vous pouvez vous débarrasser de certains des moulages.
'intervalle NSTimeInterval = [[NSDate dateWithTimeIntervalSinceNow: 0] timeIntervalSinceDate: [NSDate dateWithTimeIntervalSinceReferenceDate: 0]];' doit être écrit 'intervalle NSTimeInterval = [NSDate timeIntervalSinceReferenceDate];' – user102008
Il y a 60 minutes en une heure non 100: ' int minutes = (int) (fraction * 60.0f); ' –