Jour associé à une date donnée

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

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.