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
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
RE : CODE GéNéRé RE : CODE GéNéRé par am4sys
Cliquez pour lire la suite par am4sys RE : CODE GéNéRé RE : CODE GéNéRé par Julien39
Cliquez pour lire la suite par Julien39 CODE GéNéRé CODE GéNéRé par am4sys
Cliquez pour lire la suite par am4sys
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|