12
votes

Pourquoi calendar.get (calendar.month) rend-il 0?

Pourquoi le retour suivant 0?

int currMonth = c.get(Calendar.MONTH);


2 commentaires

Quel est le type de C ?


@Mark E: Calendrier


3 Réponses :


0
votes

oups! désolé - je l'ai compris. Indexation naturelle bien sûr !!!


3 commentaires

Vous n'utilisez pas de chiffres pendant des mois, mais devriez utiliser les constantes de calendrier tels que le calendrier.janary (qui, comme vous le découvrez, c'est 0). L'API montre cela.


Les constantes de calendrier n'ont aucun sens si vous essayez d'obtenir le numéro de mois. Dans ce cas, il faut juste oublier d'incrémenter la valeur de retour. Je trouve tout assez ennuyeux, surtout des jours retournés à partir de 1 ...


Ouais c'est un peu étrange ...



51
votes

Les mois sont numérotés de 0 (janvier) à 11 (décembre).

référence:


6 commentaires

La dernière dépend du nombre de mois de l'année ...


@Byers: et si "0" signifie "janvier" ou "abib" ou "zhengyue" dépend de quel calendrier vous utilisez. Mais je pense que c'est une hypothèse juste qu'il parle du calendrier grégorien. Ce dernier que j'ai vérifié a eu 12 mois dans un an, car il a été inventé en 1582. Je suis tous pour garder les systèmes flexibles, mais sur la liste des choses susceptibles de changer, le nombre de mois dans une année civile est assez loin.


FWIW, Java soutient l'undecrimber, un treizième mois de l'année utilisée dans les calendriers lunaires ...


@Brien où puis-je trouver ça?


@San télécharger.oracle.com/javase/6/ Docs / API / Java / Util / Calendar.htm l


@Brian Arghh, j'étais aveugle. Pardon.



11
votes

Indexation non naturelle, mais la pensée non naturelle des Sun Sun. : -)


5 commentaires

Je me demande: devrais-je upvote ceci ou le drapeau comme offensant? Je vais aller pour ni


Non je ne pense pas. Pourquoi janvier devrait-il être représenté numériquement comme 1 (je ne parle pas de textuellement)? Bien sûr, la représentation de chaîne peut être 1 dans de nombreuses cultures écrivant des dates, mais cela est géré par des formateurs de date, pas un calendrier. 1+ représentant pour le smiley cependant.


Peut-être que c'est juste moi, mais je trouve la cartographie 1 (numérique) à 1 (texte) juste un peu plus facile ... :-)


Je pense que c'est certainement le droit de la démarrer de 0 à se conformer à d'autres méthodes d'indexation en Java. C'était vraiment une question stupide - désolé de perdre du temps d'expert!


@David, ce n'est pas une question muette, car la sémantique est très déroutante. Je suis cependant en désaccord avec vous. 0 est vraiment la source de beaucoup de confusion.