Je suis intéressé par la création d'une méthode pour trouver si la date actuelle tombe entre certains temps un jour donné. C'est pour un programme de planification, donc je veux trouver quel événement se produit à l'heure actuelle. Chaque jour a le même ensemble de fois: 820-900, 900-940, 940-1020, etc. Puisque cela doit être fait n'importe quel jour je ne sais pas comment créer un NSDate avec un certain temps. Je pense que cela pourrait être fait avec NSTimeInterval mais je ne suis pas sûr de savoir comment l'instancier.NSDate entre deux NSDates donnés
Répondre
Ce n'est pas parfait, mais vous pouvez utiliser [NSDate comparer:] pour vérifier votre date contre les deux limites:
NSDate *firstDate = ...
NSDate *secondDate = ...
NSDate *myDate = [NSDate date];
switch ([myDate compare:firstDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as firstDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
switch ([myDate compare:secondDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as secondDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
Ou plus brièvement:
BOOL between = NO;
if (([myDate compare:firstDate] == NSOrderedDescending) &&
([myDate compare:secondDate] == NSOrderedAscending)) {
between = YES;
}
Je suis sûr qu'il ya une meilleure façon de faire une comparaison de date complexe, mais cela devrait fonctionner.
Jetez un coup d'œil à - [NSCalendar components: fromDate:]. Il vous permettra de «décomposer» une date en ses différents composants, et vous pourrez, dans ce cas, regarder l'heure et la minute.
La méthode la plus simple consiste à utiliser -timeIntervalSinceReferenceDate
pour transformer chacune de vos dates en une valeur tapée NSTimeInterval
, qui n'est en réalité qu'un double
. De là, déterminer si une date est entre deux dates est juste une question de comparaisons numériques simples.
Si vous devez convertir une représentation de chaîne de date en une instance NSDate pour extraire un intervalle de temps, utilisez NSDateFormatter.
Si vous devez créer une date à partir de composants de date connus, utilisez NSCalendar. (c'est-à-dire que vous connaissez l'année 2010, le mois 4 et le jour 12, vous pouvez utiliser les composants de NSCalendar pour générer une instance NSDate via la méthode -dateFromComponents:
).
Comme Ben indiqué, l'interface des composants de NSCalendar peut également être utilisé pour Suss l'heure & minute pour déterminer si elle est dans une plage (qui semble être un usage atypique en ce que plus événements ne se produisent pas tous les jours en même temps ... mais ... bien sûr ... il y a des raisons de le faire aussi!)
- 1. Comparer deux NSDates
- 2. Différence entre 2 NSDates, excluant Weekends?
- 3. tri NSArray de NSDates
- 4. de base de données - prédicats avec NSDates
- 5. Comment obtenir le texte entre les points graphiques donnés?
- 6. Javascript - Comment puis-je faire la différence entre deux moments donnés? (heures-minutes)
- 7. iPhone: Comment trier des dates avec NSDate?
- 8. Recherche d'une date entre les intervalles donnés - Lotus
- 9. Liste de toutes les vacances américaines comme NSDates
- 10. HCF des nombres donnés
- 11. c objectif comparer deux chaînes de date dans NSDate
- 12. NSDictionary avec NSDates en tant que clés
- 13. Comparer un NSDate à [date NSDate]
- 14. Angle entre deux vecteurs 2d, diff entre deux méthodes?
- 15. core-data NSDate recherche de jours uniques et le tri
- 16. Trier NSDate dans l'ordre tout en ignorant l'heure
- 17. NSDate - GMT sur iPhone
- 18. core-plot et NSDate (iPhone)
- 19. Communiquer entre deux threads
- 20. Code entre deux processus
- 21. lien entre deux JFrames
- 22. Position entre deux points?
- 23. 'Différence' entre deux quaternions
- 24. Arrivée entre deux fois
- 25. Distance entre deux adresses
- 26. Différence entre deux cartes
- 27. interface entre deux bibliothèques
- 28. Intervalles entre deux temps
- 29. NSDate de la chaîne ...?
- 30. Comment puis-je éviter les problèmes de langue lors de la conversion de NSStrings en NSDates?
aucun exemple. :(:( – bluefloyd8