|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
JOUR ASSOCIÉ À UNE DATE DONNÉE
Information sur la source
Description
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
- /**
- * 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 + Math.round(2.6d*(mm + 1)) + Math.round(cc/4) - 2*cc + yy + Math.round(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);
- }
- }
- }
/**
* 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 + Math.round(2.6d*(mm + 1)) + Math.round(cc/4) - 2*cc + yy + Math.round(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.
Historique
- 01 novembre 2007 16:20:46 :
- Correction faite.
- 01 novembre 2007 16:23:52 :
- Correction faite
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
comparaison de deux dates [ par tarekcom ]
Bonjour tout le monde, voila j'ai ecrit ce code pour verifier si une date x est avant une date y ou non et j'obtient faux meme si la date x est préce
Simpledateformat [ par deterred ]
Bonjour,Je souhaite obtenir la date courante sous le format : Fri, 29 Dec 2006 23:57:10 +0100J'ai donc fait ceci : <b
[DEBUTANTE] Formater et inserer une date dans une [ par mariafan ]
Bonjour,Merci de bien vouloir m'aider à résoudre ce pb qui bloque l'avancement de mon projet.voilà, je travaille avec un BDD my SQL dans laquelle je d
string to date [ par cid019 ]
bonjour,voila j'ai une date au format String et je voudrais la convertir au format date. J'ai essayé avec un SimpleDateformat et la fonction parse, il
mauvais format de date [ par nezdeboeuf62 ]
bonjour a tous..j'ai un probleme pour manipuler des dates et surtout les formattées pour affichage.J'ai un object Calendar : Calendar date=Cale
Problème dans les Date avec SimpleDateFormat [ par Luc1an0 ]
Bonjour à tous, pour vous situer le contexte, j'ai une application principale qui créer des dossiers chaque jour avec la date de ce meme jour. Une foi
Probleme de conversion String -> Date avec SimpleDateFormat.parse(String) [ par zinZ ]
Bonjour,J'ai une date sous forme de String que je converti en Date grace a SimpleDateFormat.parse(String)Le format de la date est "HHmmss.SSS"L'ennui
Problème de dates [ par scaryman ]
bonjour a tous, voila le code que j'utilise : Calendar cal = new GregorianCalendar(2005, 8, 8); //mettre le cal
format de date [ par kazadialain ]
Bonjour à tous,J'ai un problème,je desir convertir la date du format Timestamp au format (yyyy-mm-jj) année-mois-joursmerçi Alka
formater une date [ par malls ]
"Java ça déchire tout"Il y aurait il quelq'un qui pourrais m'aider pour convertir une date de type String (parce que je la récupère depuis un formulai
|
Téléchargements
Logiciels à télécharger sur le même thème :
|