Java: jour d'une date donnée

Fermé
soso - Modifié par Jeff le 6/11/2014 à 09:22
 soso - 5 mars 2009 à 00:59
Bonsoir
merçi d'avance

j'ai crée une classe date avec le langage java
je veux savoir qu'il est le jour d'un date donnée par exemlpe
3/3/2009
est mardi/mars/2009
vous pouvez m'aider svp comment je peux la faire
A voir également:

8 réponses

Utilisateur anonyme
3 mars 2009 à 05:26
Salut,

Pour la date du jour tu peux faire:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE d MMMM yyyy");
Date date = new Date();
String laDateFormatee = sdf.format(date);
System.out.println("La date du jour : " + laDateFormatee);

Mais pour une date telle que 3/3/2009
il est fortement recommandé de NE PAS FAIRE

SimpleDateFormat sdf = new SimpleDateFormat("EEEE d MMMM yyyy");
Date date = new Date("3/3/2009");
String laDateFormatee = sdf.format(date);
System.out.println("La date du jour : " + laDateFormatee);

car Date date = new Date("3/3/2009"); est "deprecated"
Même si le résultat obtenu est correct, mais tôt ou tard ce sera refusé.

Il faut voir du coté de Calendar/GregorianCalendar

Cordialement,

Dan
1
wafa1987 Messages postés 26 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 21 janvier 2011
3 mars 2009 à 11:36
SVP danimo vous pouvez m'aidez à résoudre mon probléme
j'ai un programme java qui traite un fichier qui contient des informations en langue arabe. je vais traiter ces informations et les écrire dans un autre fichier. ca marche bien si j'utilse des données francais mais le probléme c'est avec la langue arabe
j'ai un pb d'unicode? je sais pas pourquoi? qui peut m'aider SVP?
j'ai pas trouver de solution?
0
Merçi Danimo pour votre réponse
j'ai testé la méthide que vous avez écrit mais elle me donne seulement le nom du jour de la date d'aujourd'hui mais moi je veux savoir le nom d'un jour d'une date donnée par l'utilisateur
comment je peux le faire svp.
merçi d'avance
0
Utilisateur anonyme
4 mars 2009 à 01:27
Salut,



"autre question svp
je veux calculer l'age de qulqu'un à partir d'un date donnée "

GregorianCalendar et Calendar te seront également utiles pour faire celà.

Cordialement,


Dan
1
ezo_es Messages postés 100 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 16 mars 2010 9
3 mars 2009 à 23:54
bonsoir
tu crees un private SimpleDateFormat avec le format de la date voulu comme ca
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE d MMMM yyyy");
puis une metthode qui retourne ce format

public String fromDateToString(Date aDate) {
if (aDate == null) {
return null;
} else {
return simpleDateFormat.format(aDate);

}
}
et dans le main tu demande tu crees un objet de ta classe et tu demande a l'utilisateur de faire entré la date voulu

et voila la classe complete

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.*;
public class Debutante {


private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE d MMMM yyyy");




public String fromDateToString(Date aDate) {
if (aDate == null) {
return null;
} else {
return simpleDateFormat.format(aDate);

}
}

public static void main(String[] args) {
Debutante d=new Debutante();
Scanner in=new Scanner(System.in);
System.out.println("entrez la date ");
Date date=new Date(in.next());
System.out.println(d.fromDateToString(date));


}

}
bonne chance
0
Utilisateur anonyme
4 mars 2009 à 00:57
Salut,

Oui, mais comme signalé dans ma réponse:


Date date=new Date(in.next()); // EST DEPRECATED

Je vais donc donner un exemple avec Calendar / GregorianCalendar:

import java.io.*;
import java.util.GregorianCalendar;
import java.util.Calendar;

public class ex3bis
{
static int ex = 3;

// Les 2 tables : tabjours[], tabmois[]
static String[] tabjours = {"dimanche", "lundi", "mardi", "mercredi", "jeudi",
"vendredi", "samedi"};

static String[] tabmois = {"janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre"};

public static String ex3()
{
// Nous supposons que nous entrons p1, p2, p3 au clavier
// p1 >> parametre annee, p2 parametre mois, p3 parametre jour
int p1 = 2009;
int p2 = 3;
int p3 = 1;
p2--; // p2 doit contenir le n° de mois moins 1, soit 0 a 11

Calendar cal = new GregorianCalendar(p1, p2, p3);
// obtention des composants de la date :
int annee = cal.get(Calendar.YEAR);
int num_mois = cal.get(Calendar.MONTH);
int jour = cal.get(Calendar.DAY_OF_MONTH);
int num_jour = cal.get(Calendar.DAY_OF_WEEK);

String Sjour = Integer.toString(jour);
if (Sjour.equals("1")) Sjour = "1er";

String info2 = "CODE DE L'EXEMPLE ( ENTRER UNE DATE PARTICULIÈRE ) \n\n"

+ "Le résultat sera affiché dans une boite de dialogue sous la forme :\n"
+ "EXEMPLE " + ex + "\n\n"

+ tabjours[num_jour -1] + " " + Sjour + " " + tabmois[num_mois] + " " + annee + "\n\n";

// un second exemple nous permet de savoir quel jour nou serons dans 2 ans
// on aurait pu ajouter 2 a p1
p3 = p3 +731; // 731 jours apres la 1ere date (2 ans)
// nous fournissons les parametre de la nouvelle date
cal = new GregorianCalendar(p1, p2, p3);
// obtention des composants de la date :
annee = cal.get(Calendar.YEAR);
num_mois = cal.get(Calendar.MONTH);
jour = cal.get(Calendar.DAY_OF_MONTH);
num_jour = cal.get(Calendar.DAY_OF_WEEK);

info2+= "Et après ajout de 2 ans (731 jours) à p3 (jour) :\n\n"

+ tabjours[num_jour -1] + " " + Sjour + " " + tabmois[num_mois] + " " + annee + "\n"

+ "\n\n ------------------------------------------------------\n";
String info = info2;
javax.swing.JOptionPane.showMessageDialog(null,info);

return "";
}

public static void main (String[] args)
{
ex3();
System.exit(0);
}
}

Cordialement, Dan
0
Merçi pour votre réponse j'ai écrit la méthode que vous avez écrit mais quand je veux l'exécuter dans le main il m'indique que il ya un prblème dans la forme du date .
qu'elle est la forme de la date que dois écrire
exp 3/4/2008
autre question svp
je veux calculer l'age de qulqu'un à partir d'un date donnée
comment je peux le faire
merçi encore et desolée pour ce dérangement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ezo_es Messages postés 100 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 16 mars 2010 9
4 mars 2009 à 01:04
Bonsoir
tu ecris sous forma exp= "02/03/2009"
0
farfouch00 Messages postés 113 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 26 mars 2010 3
4 mars 2009 à 01:15
Salut,

En fait ca dépend de la classe... Si Jour, Mois, Année sont les attributs de ton objet de la classe Date, alors il est facile de les recuperer ( grace aux accesseurs bien entendu ) puis il suffit d'apliquer l'algo... Il est de la forme ( en pseudo code pour avoir le jour, si tu veux la version java, tu me le demandes )

entier j, m, a, s, JD, JS

si m<3 alors m <-- m + 12
a <-- a - 1
fsi
s <-- a \ 100
JD <-- 1720996,5 - s + s \ 4 + [365,25*a] + [30,6001*(M+1)] + j
JD <-- JD - [JD/7]*7
JS <-- [JD] mod 7
selon que
JS = 0 faire Dat <-- "mardi";
JS = 1 faire Dat <-- "mercredi";
JS = 2 faire Dat <-- "jeudi";
JS = 3 faire Dat <-- "vendredi";
JS = 4 faire Dat <-- "samedi";
JS = 5 faire Dat <-- "dimanche";
JS = 6 faire Dat <-- "lundi";
fselon
écrire "Le ", j, "/", m, "/", a, "est un ", Dat

Pour le mois, c'est plus simple je suppose
0
Merçi pour votre réponse
vous pouvez me donner la version java svp

voila la methode que j'ai fait pour avoir la date demandée


public String jour2() throws ParseException, java.text.ParseException {
String str = année+"/"+mois+"/"+jour;
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
java.util.Date dte = sdf.parse(str);
sdf = new SimpleDateFormat("EEEE");
return sdf.format(dte);
elle me donne le resultat merçi encore
pour calculer l'age de qulqu'un

je dois savoir le mois el l'année à partir de numero de securité qui se compose de 13nb( pour le 1er num si egale 1 alors c'est masculin et si egale 2 est feminin et pourle num 2 et 3 c'est pour l'année de naiss et le num 4 et 5 pour le mois )
et je savoir l'age à partir de numero de securité(num2 et 3)
année de naiss-année de le systeme
voila la classe que j'ai écrit
import java.util.Calendar;
import java.util.GregorianCalendar;


public class personne2 {
private String nom;
private String societé;
final String pasdesocieté="?";
private String NumSecu;
public personne2(String Nom){
nom=Nom;
}

public personne2(String Nom,String Societé){
nom=Nom;
societé=Societé;

}
public personne2(String Nom,String Societé,String numsecu){
nom=Nom;
societé=Societé;
NumSecu=numsecu;
}
public String validersocieté(String x){
if(x!=pasdesocieté)
return x;else return "?";
}
public void setNom(String nom) {
this.nom = nom;
}
public String getNom() {
return nom;
}
public void setSocieté(String societé) {
this.societé = societé;
}
public String getSocieté() {
return societé;
}


public boolean etreSalarie(){
if (societé.equals(pasdesocieté)==false);
return true;



}
public void quitterSocieté(){
if(etreSalarie()==false)
System.out.println("je quitte la societé "+societé);
else
System.out.println("impossiple de quitter la societé");
}
public void setNumSecu(String numSecu) {
NumSecu = numSecu;
}
public String getNumSecu() {
return NumSecu;
}
public String validernumsecu(){
int s=Integer.parseInt(NumSecu.substring(2,5));

if(NumSecu.length()==13 & (NumSecu.charAt(0)=='1'| NumSecu.charAt(0)=='2' ) & s<12)
return NumSecu ;
else return " Numsecurité incorrecte";
}
public boolean IsMasculin(){
boolean s = false;

if(NumSecu.charAt(0)=='1')
s= true;
else if(NumSecu.charAt(0)=='2')s=false;
return s;
}

public int getAge(){
int an=Integer.parseInt(NumSecu.substring(1, 3));
an=an+1900;
comment je peux savoir la date du systeme pour que je peux faire la soustraction de deux date
0
farfouch00 Messages postés 113 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 26 mars 2010 3 > soso
4 mars 2009 à 02:13
import java.util.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class Dates
{
// * Choix de la langue francaise
static Locale locale = Locale.getDefault();
static Date actuelle = new Date();

// * Definition du format utilise pour les dates
static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

// * Donne la date au format "aaaa-mm-jj"
public static String date()
{
String dat = dateFormat.format(actuelle);
return dat;
}


Je suis pas sur du fonctionnement de ce code. J'attends ton feed back
0
farfouch00 Messages postés 113 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 26 mars 2010 3 > soso
4 mars 2009 à 02:17
Une autre remarque, mais je suis toujours pas sur... ( j'ai pas JCreator sur ce PC )

Je pense que rien que l'instantiation d'un objet de type Date, lui affecte directement la date actuelle.

Tu me mets au courant si c'est le cas!
0
soso > farfouch00 Messages postés 113 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 26 mars 2010
4 mars 2009 à 02:47
ca marche pas et voila une autre méthode je la trouve
public void affichedate(){
SimpleDateFormat sdf = new SimpleDateFormat("EEEE d MMMM yyyy");
Date date = new Date();
String laDateFormatee = sdf.format(date);
System.out.println("La date d'aujourd'hui est : " + laDateFormatee); }
elle me donne le résultat mais je n'arrive pas à comprendre ce ligne (String laDateFormatee = sdf.format(date);
**vous pouvez me donner la version que vous avez dit**
0
Utilisateur anonyme
4 mars 2009 à 03:42
Re,

"elle me donne le résultat mais je n'arrive pas à comprendre ce ligne (String laDateFormatee = sdf.format(date); "

Date date = new Date(); est bien la maniere d'obtenir la date du jour (date systeme)

en faisant un print de date: System.out.println("date = " + date); tu te rends compte que ce n'est pas sous cette forme que tu veux ta date.

Avec
SimpleDateFormat sdf = new SimpleDateFormat("EEEE d MMMM yyyy"); tu vas donner un nouveau format a la date

EEEE permet d'obtenir le nom du jour en entier, d le jour, MMMM le nom du mois en entier et yyyy l'annee su 4 caracteres.

On obtient une autre présentation de la date, on a changé le "formatage"

String laDateFormatee = sdf.format(date);
J'aurais pu ecrire :
String resultat = sdf.format(date);

L'equivalent pour obtenir la date du jour avec GregorianCalendar est:

GregorianCalendar cal = new GregorianCalendar(); // sans parametres
// obtention des composants de la date :
int annee = cal.get(Calendar.YEAR);
int num_mois = cal.get(Calendar.MONTH); // num_mois prend les valeurs 0 a 11
int jour = cal.get(Calendar.DAY_OF_MONTH);

Cordialement,

Dan
0
Bonjour Danimo
désolée pour ce dérangament
maintenant j'arrive à comprendre
autre question svp
comment je fais pour surcharger une méthode
exp j'ai écrit une classe mere(personne ) et 3 classe qui héritent de la classe personne et à l'interieur des trois 3 il y a une méthode qui porte la meme signature comment je peux la surcharger dans la classe de base
desolée encore
0
farfouch00 Messages postés 113 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 26 mars 2010 3
4 mars 2009 à 11:54
Salut Soso

Lorsque tu surcharges une méthode, à son emploi, c'est toujours la méthode surchargée ( redéfinie dans la classe fille ) qui est utilisée. La seul façon d'appliquer la méthode définie dans la classe mère, c'est de l'appeler pour un objet de cette classe.

Exemple : Classe mère : Personne ou t'as définis une méthode toString()
Classe files : Employé, Étudiant ou t'as surchargée la méthode toString()

Lorsque t'appliques à une instance de la sous classe Étudiant la méthode toString(), c'est celle redéfinie dans cette sous classe qui est appelée... Et le seul moyenne de faire appel à la 1ere, c'est de l'appliquer sur une instance de la classe Personne!
0
slt tout le monde
par exemple on a une méthode calculesalaire() qui est commun entre 3 classes qui héritent de la classe personne
mais j'ai écrit le code de cette méthode dans les 3 autres classe avec la meme signature et pas avec avec le meme code et pas dans la classe mere svp comment je peux surchager cette méthode dans la classe personne
0