Jour associé à une date donnée

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 739 fois - Téléchargée 361 fois

Contenu du snippet

Ce programme a pour but de déterminer le jour de la semaine correspondant à une date donnée.

Le programme se base sur la formule du Mathématicien Allmend : Zeller

http://www.chez.com/cosmos2000/Vendredi13/ZellerMethode.html
http://www.recreomath.qc.ca/dict_zeller_f.htm

C'est une occasion pour :

1. Connaître ce grand Mr. (Zeller)
2. Connaître votre jour de naissance si ça vous intéresse vraimant.
3. Marquer / se rappler des certains événements de votre vie.
4. Faire un peu de l'algorithmiques.

Source / Exemple :


/** 

  • Programme a pour but de déterminer le jour de la semaine correspondant à une date donnée.
  • Le programme se base sur la formule du Mathématicien Allmend : Zeller
*
  • Auteur : A.B.
  • Date : 10/10/2006
  • /
import java.util.Date; import java.text.SimpleDateFormat; import java.text.Format; import java.text.ParseException; public class Algorithm { /**
  • Les jours de la semaines : ici Samedi est supposé le premier jour de la semaine.
  • /
private static final String [] days = {"Samedi", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi"}; /**
  • Cette méthode implémente la formule de Zeller.
  • @return : Jour correspondant à la date fournit en paramètre.
  • /
public static String formuleZeller (int dd, int mm, int yyyy) { if (mm == 1 | mm == 2) { mm += 12; yyyy--; } int cc = yyyy/100; int yy = yyyy%100; int k = (int)(dd + 2.6d*(mm + 1) + cc/4 - 2*cc + yy + yy/4); if (k<0) { k = (-k)%7; k = 7 - k; } return days [k%7]; } /**
  • Cette méthode se charge de vérifier la validité d'une date.
  • @return : true si la date fourint est valide par rapport au patron : "dd/MM/yyyy"
  • false sinon
  • /
public static boolean dateEstValide (String date, String pattern) { try { Date simple = new SimpleDateFormat(pattern).parse(date); Format fmt = new SimpleDateFormat(pattern); if (!date.equals(fmt.format(simple))) return false; return true; } catch(ParseException e) { return false; } } /**
  • Exécution
  • /
public static void main(String [] args) { /**
  • Vérifier la validité de la ligne de commande.
  • /
if (args.length != 3) { System.err.println (); System.err.println ("usage : Algorithm day month year"); System.err.println (); System.err.println ("exemple: Algorithm 16 09 1982"); System.err.println ("\7"); System.exit (1); } String pattern = "dd/MM/yyyy"; String date = ""; /**
  • Récupérer les arguments fournit par la ligne de commande et le remettre
  • sous la forme "dd/MM/yyyy" pour que cette date respecte notre patron
  • exemple : une date 1 2 1980 sera mis comme ceci : 01/02/1982
  • on vérifie bien qu'elle est "sous" la forme "dd/MM/yyyy"
  • /
if (args [0].length () == 1) { date += "0"; } date += args [0] + "/"; if (args [1].length () == 1) { date += "0"; } date += args [1] + "/"; date += args [2]; /**
  • Tester la validité de la date fournit par la ligne de commande.
  • /
if (!dateEstValide (date, pattern)) { System.err.println (); System.err.println ("La date saisie est invalide ..."); System.err.println ("\7"); System.exit (1); } else { String result; result = Algorithm.formuleZeller (Integer.parseInt (args [0]), Integer.parseInt (args [1]), Integer.parseInt (args [2])); System.out.println (); System.out.print ("Le jour correspondant a la date " + date + " est : "); System.out.println (result); } } }

Conclusion :


Merci à tous les amis du forums qui m'ont aidé à réaliser ce tout tout petit programme.
Je répète encore ce programme est un simple programme d'algorithmique, Vu que je suis encore débutant.

Et surtout sans oublier de dire Merci infiniment à A.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Je suis vraiment Désolé. :-) lol
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Correction faite.

Merci Mixday.
Messages postés
1
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
19 octobre 2009

Marche pas à tous les coups ! ex: 19/10/2009
Solution : enlever les Math.round
Messages postés
76
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

desolé mais ca marche pas a tout les coups
il me donne mercredi 15 octobre 1985 hors c'etait un mardi.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Ok, c'est fait.

Le programme doit marcher maintenant sans aucun problème.

Merci pour la remarque.
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.