Comment vérifier si aujourd'hui, c'est dimanche avec Java Calendrier
J'ai écrit quelques lignes de code qui ne fonctionne pas correctement. Pourquoi? Pourriez-sb m'expliquer?
Calendar date = Calendar.getInstance();
date.set(2010, 03, 7);
if(date.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
System.out.println("OK");
- Je suis surpris que personne ne l'a suggéré à l'aide de Joda Temps pourtant... C'est une bien meilleure API pour faire de la date/heure de la manipulation.
Vous devez vous connecter pour publier un commentaire.
Pour éviter de faire des erreurs, vous pouvez utiliser le Calendrier des valeurs statiques pour le mois, par exemple :
Mois à compter à partir de zéro:
Aussi, ne pas prendre l'habitude de l'écriture des chiffres avec des zéros. Qui dit Java (et beaucoup d'autres langues) que vous souhaitez le nombre interprété comme une octal (base 8) constante, pas de décimale.
Parce que avril 7th, 2010 n'est pas un dimanche. Mois commence à zéro: 0 = Janvier, 1 = Février, 2 = Mars, ...
(Également, note de côté, vous avez utilisé l'octal lors de la spécification du mois [
03
au lieu de3
]. Pas trop grave jusqu'à ce que vous obtenez à septembre, après quoi08
est pas valide nombre octal.)Est-ce pour Euler 19?
Si oui, voici une astuce, boucle de 1901 à 2000, passant de 0 à 11 mois, de jours, de 1 à 31, puis demandez:
Probablement parce que le mois est basée sur 0, de sorte que vous définissez avril, 7, qui est un mercredi.
Le mois de la valeur est basée sur 0.
Java docs pour définir la méthode du Calendrier de la classe
.Aussi, si vous voulez vérifier si aujourd'hui(le jour de l'exécution du programme:) ), c'est dimanche, vous avez besoin de ne pas mettre quoi que ce soit, parce que le
getInstance
méthode retourne un objet Calendrier basé sur l'heure actuelle dans le fuseau horaire par défaut avec les paramètres régionaux par défaut:Pour moi, ce code a fonctionné correctement, veuillez régler la date exacte par ordre de la milliseconde, et essayez comme ceci:-
Grâce,
Prabhat Kumar Kashyap
cal.DAY_OF_WEEK == cal.SAMEDI
|| cal.DAY_OF_WEEK == cal.SAMEDI
devrait être assez bon.