Format pour stocker une heure

UniXUniX Membre
14:41 modifié dans API AppKit #1
Salut.

J'ai une heure à  stocker (du type 15:36:24). Je vois que tout se passe avec NSDate, mais j'ai l'impression que c'est un beau bordel pour stocker une simple heure.
Quelle est la meilleure méthode ?

Réponses

  • BruBru Membre
    14:41 modifié #2
    Utilise plutôt un objet NSCalendarDate (sous classe de NSDate) pour stocker tes heures :

    <br />{<br />&nbsp; &nbsp; NSCalendarDate *heure;<br /><br />&nbsp; &nbsp; heure=[NSCalendarDate dateWithString:@&quot;15:36:24&quot; calendarFormat:@&quot;%H:%M:%S&quot;];<br />}<br />
    


    .
  • AliGatorAliGator Membre, Modérateur
    octobre 2005 modifié #3
    dans 1130228783:

    Salut.

    J'ai une heure à  stocker (du type 15:36:24). Je vois que tout se passe avec NSDate, mais j'ai l'impression que c'est un beau bordel pour stocker une simple heure.
    Quelle est la meilleure méthode ?
    Heu ça dépend tu as à  la stocker où ?
    Si c'est dans un plist, une NSDate marche très bien, ça va formatter tout seul dans le fichier plist sans que tu aies de soucis à  te faire.
    Sinon avec un NSArchiver ou NSCoder ou ce genre de choses (j'ai jamais trop touché mais c'est dans les parages il me semble) ?

    Sinon si c'est stocker dans une variable le plus simple c'est [arg grilled by Bru]
  • UniXUniX Membre
    14:41 modifié #4
    J'ai choisi la méthode [arg grilled by Bru]  ;)
  • AntilogAntilog Membre
    14:41 modifié #5
    Fais attention, la syntaxe correcte est:

    [arg grilledBy:Bru];
    


    Avec arg, naturellement définit comme
    NSTooLate * arg
    et Bru
    BRUMaster * Bru

    ;)
  • AntilogAntilog Membre
    14:41 modifié #6
    Un point à  ne pas oublier:
    l'objet Bru, dans la [tt]chaà®ne de message[/tt], est souvent le [tt]FirstResponder[/tt]!

    OK, j'y vais tout seul...  :brule:
  • UniXUniX Membre
    14:41 modifié #7
  • AliGatorAliGator Membre, Modérateur
    octobre 2005 modifié #8
    dans 1130235449:

    Fais attention, la syntaxe correcte est:

    [arg grilledBy:Bru];
    


    Avec arg, naturellement définit comme
    NSTooLate * arg
    et Bru
    BRUMaster * Bru

    ;)
    dans 1130236427:

    Un point à  ne pas oublier:
    l'objet Bru, dans la [tt]chaà®ne de message[/tt], est souvent le [tt]FirstResponder[/tt]!

    OK, j'y vais tout seul...  :brule:
    Excellent :)  ;D :adios!: :o :) <3 <br />
    Bon en réalité je n'ai pas été réellement grilledBy:Bru, j'avais vu sa réponse au moment de poster, mais j'avais l'impression qu'il expliquait comment afficher une heure et non pas la stocker, d'autant que pour moi stocker c'était dans le sens "dans un fichier de préférences genre plist"
    Ce n'est qu'après avoir posté que j'ai relu le post de Bru et modifié le mien :D

    Donc c'est plutôt :
    NSStupidMember* ali;
    [ali learnToReadPostsBeforeReplying];
    :D
  • 14:41 modifié #9
    Tu oses mettre en doute la Parole de Bru maintenant?

    Sinon pour instancier des dates lorsqu'on ne connaà®t pas le format à  priori, il y a une méthode qui est très intéressante:
    [tt]+ dateWithNaturalLanguageString:(NSString *)string locale:(NSDictionary *)localeDictionary[/tt]
  • VeillardVeillard Membre
    14:41 modifié #10
    Allez, un peu de piment...

    Pour cumuler des heures du style 23:30 + 17:15 = 40:45 si on utilise NSDate, on devrait avour 1 jour et 16 h 45 min...

    Et si je veux garder 40:45 ?... ???
  • 14:41 modifié #11
    Facile ça ;)

    [tt]NSCalendarDate* date1 = ....;
    NSCalendarDate* date2 = ....;
    int hours, minutes;
    [date1 years:NULL months:NULL days:NULL hours:&hours
        minutes:&minutes seconds:NULL sinceDate:date2];[/tt]
  • VeillardVeillard Membre
    14:41 modifié #12
    Merci Renaud  ;)
Connectez-vous ou Inscrivez-vous pour répondre.