Accueil > > > JOUR ASSOCIÉ À UNE DATE DONNÉE
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/dic t_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 + 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);
- }
- }
- }
/**
* 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.
Historique
- 01 novembre 2007 16:20:46 :
- Correction faite.
- 01 novembre 2007 16:23:52 :
- Correction faite
- 19 octobre 2009 17:19:03 :
- Correction d'une petite bug de calcul.
Sources du même auteur
Sources de la même categorie
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
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|