A voir également:
- Validation d'un date (java)
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
- Jm date avis - Forum Consommation & Internet
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. - Forum Graphisme
10 réponses
Voici une solution à ton problème:
import java.util.*;
/**
* @author HackTrack
* @version 1.0
*/
public class CalTester{
public CalTester() {
}
private boolean testDate(int year, int month, int day){
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(year, month, day);
int goodYear = calendar.get(Calendar.YEAR);
int goodMonth = calendar.get(Calendar.MONTH);
int goodDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("***************************");
System.out.println("Date entrée = " + year + month + day);
System.out.println("Date formatée = " + goodYear + goodMonth + goodDay);
if(goodYear==year & goodMonth==month & goodDay==day){
System.out.println("Date valide");
return true;
}
System.out.println("Date non valide");
return false;
}
public static void main (String args[]) {
CalTester tester = new CalTester();
int yearToTest = 2001;
int monthToTest = 10 ;
int dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 14 ;
dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = -2001;
monthToTest = 7 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 158 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
}
}
;-)
import java.util.*;
/**
* @author HackTrack
* @version 1.0
*/
public class CalTester{
public CalTester() {
}
private boolean testDate(int year, int month, int day){
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(year, month, day);
int goodYear = calendar.get(Calendar.YEAR);
int goodMonth = calendar.get(Calendar.MONTH);
int goodDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("***************************");
System.out.println("Date entrée = " + year + month + day);
System.out.println("Date formatée = " + goodYear + goodMonth + goodDay);
if(goodYear==year & goodMonth==month & goodDay==day){
System.out.println("Date valide");
return true;
}
System.out.println("Date non valide");
return false;
}
public static void main (String args[]) {
CalTester tester = new CalTester();
int yearToTest = 2001;
int monthToTest = 10 ;
int dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 14 ;
dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = -2001;
monthToTest = 7 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 158 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
}
}
;-)
Bonjour,
Puisque cette demande vient de recevoir une rnouvelle réponse après plus de 7 ans, j'ajoute ceci:
import java.util.GregorianCalendar;
................
................
GregorianCalendar dGC = new GregorianCalendar();
int annee = 2009;
int num_mois = 1; // janvier
int jour = 30; // ne provoque pas la levée de l'exception ou 31, 29 non
try
{
dGC = new GregorianCalendar(annee, num_mois - 1, jour); // 0 = janvier
// NE PAS OUBLIER num_mois - 1 pour le parametre mois!!!...
// les num. de mois étant donnés ou obtenus sous la forme 0 à 11
// controle de la validite de la date: avec setLenient(false) pas d'indulgence:
dGC.setLenient(false); // sans cette ligne, pas d'exception possible
// (true par defaut) donc "indulgence"
// mais très utile pour les manip. de dates (calculs)
// c'est a la lecture qu'il y a l'eventuelle exception
int anneeB = dGC.get(GregorianCalendar.YEAR);
int num_moisB = dGC.get(GregorianCalendar.MONTH);
int jourB = dGC.get(GregorianCalendar.DAY_OF_MONTH);
}
catch (Exception e)
{
e.printStackTrace();
}
// Avec num_mois = 2; erreur
// Avec jour > nombre de jours maxi de num_mois ou <0 : erreur
Puisque cette demande vient de recevoir une rnouvelle réponse après plus de 7 ans, j'ajoute ceci:
import java.util.GregorianCalendar;
................
................
GregorianCalendar dGC = new GregorianCalendar();
int annee = 2009;
int num_mois = 1; // janvier
int jour = 30; // ne provoque pas la levée de l'exception ou 31, 29 non
try
{
dGC = new GregorianCalendar(annee, num_mois - 1, jour); // 0 = janvier
// NE PAS OUBLIER num_mois - 1 pour le parametre mois!!!...
// les num. de mois étant donnés ou obtenus sous la forme 0 à 11
// controle de la validite de la date: avec setLenient(false) pas d'indulgence:
dGC.setLenient(false); // sans cette ligne, pas d'exception possible
// (true par defaut) donc "indulgence"
// mais très utile pour les manip. de dates (calculs)
// c'est a la lecture qu'il y a l'eventuelle exception
int anneeB = dGC.get(GregorianCalendar.YEAR);
int num_moisB = dGC.get(GregorianCalendar.MONTH);
int jourB = dGC.get(GregorianCalendar.DAY_OF_MONTH);
}
catch (Exception e)
{
e.printStackTrace();
}
// Avec num_mois = 2; erreur
// Avec jour > nombre de jours maxi de num_mois ou <0 : erreur
Voici une solution à ton problème:
import java.util.*;
/**
* @author HackTrack
* @version 1.0
*/
public class CalTester{
public CalTester() {
}
private boolean testDate(int year, int month, int day){
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(year, month, day);
int goodYear = calendar.get(Calendar.YEAR);
int goodMonth = calendar.get(Calendar.MONTH);
int goodDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("***************************");
System.out.println("Date entrée = " + year + month + day);
System.out.println("Date formatée = " + goodYear + goodMonth + goodDay);
if(goodYear==year & goodMonth==month & goodDay==day){
System.out.println("Date valide");
return true;
}
System.out.println("Date non valide");
return false;
}
public static void main (String args[]) {
CalTester tester = new CalTester();
int yearToTest = 2001;
int monthToTest = 10 ;
int dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 14 ;
dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = -2001;
monthToTest = 7 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 158 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
}
}
;-)
import java.util.*;
/**
* @author HackTrack
* @version 1.0
*/
public class CalTester{
public CalTester() {
}
private boolean testDate(int year, int month, int day){
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(year, month, day);
int goodYear = calendar.get(Calendar.YEAR);
int goodMonth = calendar.get(Calendar.MONTH);
int goodDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("***************************");
System.out.println("Date entrée = " + year + month + day);
System.out.println("Date formatée = " + goodYear + goodMonth + goodDay);
if(goodYear==year & goodMonth==month & goodDay==day){
System.out.println("Date valide");
return true;
}
System.out.println("Date non valide");
return false;
}
public static void main (String args[]) {
CalTester tester = new CalTester();
int yearToTest = 2001;
int monthToTest = 10 ;
int dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 14 ;
dayToTest = 18 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = -2001;
monthToTest = 7 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
yearToTest = 2001;
monthToTest = 158 ;
dayToTest = 21 ;
tester.testDate(yearToTest, monthToTest, dayToTest);
}
}
;-)
switch1
Messages postés
57
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
17 avril 2009
1
2 févr. 2009 à 13:30
2 févr. 2009 à 13:30
hhh
thank you
thank you
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bjr,
Mysql utilise le format de date AAAA/MM/DD, il va donc te falloir une technique pour inverser la date à partir de ton formulaire.
Mysql utilise le format de date AAAA/MM/DD, il va donc te falloir une technique pour inverser la date à partir de ton formulaire.
package Date;
import java.util.Scanner;
public class Date {
int j,m,a,val;
char s='/';
public void Initialise(int x1,int x2,int x3){
j=x1;
m=x2;
a=x3;
}
public int Bissextile(int a){
if ((a%4)==0)
return 1;
return 0;
}
public int nbrJours(int m){
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return 31;
case 4:
case 6:
case 9:
case 11: return 30;
}
if (m==2)
{
if (Bissextile(a)==1)
return 29;
}
else return 28;
return 0;
}
public int dateValide(){
if (j<=nbrJours(m))
return 1;
return 0;
}
public void affiche(){
if (dateValide()==1)
System.out.println("la date est "+j+s+m+s+a);
else System.out.println("La date n'est pas valide");
}
public static void main (String argv[])
{
Scanner read = new Scanner(System.in);
int x1,x2,x3;
System.out.println("Donner le jour");
x1=read.nextInt();
System.out.println("Donner le mois");
x2=read.nextInt();
System.out.println("Donner l'année");
x3=read.nextInt();
Date d1 = new Date();
d1.Initialise(x1,x2,x3);
d1.affiche();
}
}
import java.util.Scanner;
public class Date {
int j,m,a,val;
char s='/';
public void Initialise(int x1,int x2,int x3){
j=x1;
m=x2;
a=x3;
}
public int Bissextile(int a){
if ((a%4)==0)
return 1;
return 0;
}
public int nbrJours(int m){
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return 31;
case 4:
case 6:
case 9:
case 11: return 30;
}
if (m==2)
{
if (Bissextile(a)==1)
return 29;
}
else return 28;
return 0;
}
public int dateValide(){
if (j<=nbrJours(m))
return 1;
return 0;
}
public void affiche(){
if (dateValide()==1)
System.out.println("la date est "+j+s+m+s+a);
else System.out.println("La date n'est pas valide");
}
public static void main (String argv[])
{
Scanner read = new Scanner(System.in);
int x1,x2,x3;
System.out.println("Donner le jour");
x1=read.nextInt();
System.out.println("Donner le mois");
x2=read.nextInt();
System.out.println("Donner l'année");
x3=read.nextInt();
Date d1 = new Date();
d1.Initialise(x1,x2,x3);
d1.affiche();
}
}
private boolean isdatevalide(/*ton string de la forme jj/mm/aaaaou jj-mm-aaaa*/){
// isdate a refaire la methode traditionnelle ou khlasse
boolean vrai=true;
char [] ll =dd.toCharArray();
char[] jj= {'0','0'};//new char[2] ;
char[] mm = {'0','0'};//new char[2];
char[] aa = {'0','0','0','0'};//new char[4];
int cpt1=0;
int cpt2=0;
for (int i=0;i<ll.length;i++)
{
if(ll[i]=='-'){
cpt1++;}
if(ll[i]=='/'){
cpt1++;}
}
if(ll.length<8){
vrai=false;
}
if((cpt1==2 && cpt2==0)||(cpt2==2 && cpt1==0))
{
//ll.length==10 debut
if (ll.length==10)
{
if ((ll[2]== '-'&& ll[5]=='-')||(ll[2]== '/'&& ll[5]=='/'))
{
if(Character.isDigit(ll[0]) && Character.isDigit(ll[1])){
jj[0]=ll[0];
jj[1]=ll[1];
}else{vrai=false;}
if(Character.isDigit(ll[3]) && Character.isDigit(ll[4])){
mm[0]=ll[3];
mm[1]=ll[4];
}else{vrai=false;}
if(Character.isDigit(ll[6]) && Character.isDigit(ll[7]) && Character.isDigit(ll[8]) && Character.isDigit(ll[9])){
aa[0]=ll[6];
aa[1]=ll[7];
aa[2]=ll[8];
aa[3]=ll[9];
}else{vrai=false;}
}else{vrai=false;}
}
//ll.length==10 fin
//ll.length==8 debut
if (ll.length==8)
{
if ((ll[1]== '-' && ll[3]=='-')||(ll[1]== '/'&& ll[3]=='/'))
{
if(Character.isDigit(ll[0]) ){
jj[0]='0';
jj[1]=ll[0];
}else{vrai=false;}
if(Character.isDigit(ll[2])){
mm[0]='0';
mm[1]=ll[2];
}else{vrai=false;}
if(Character.isDigit(ll[4]) && Character.isDigit(ll[5]) && Character.isDigit(ll[6]) && Character.isDigit(ll[7])){
aa[0]=ll[4];
aa[1]=ll[5];
aa[2]=ll[6];
aa[3]=ll[7];
}else{vrai=false;}
}else{vrai=false;}
}
//ll.length==8 fin
//ll.length==9 debut
if (ll.length==9)
{
if ((ll[1]== '-' && ll[4]=='-')||(ll[1]== '/'&& ll[4]=='/'))
{
if(Character.isDigit(ll[0]) ){
jj[0]='0';
jj[1]=ll[0];
}else{vrai=false;}
if(Character.isDigit(ll[2]) && Character.isDigit(ll[3])){
mm[0]=ll[2];
mm[1]=ll[3];
}else{vrai=false;}
if(Character.isDigit(ll[5]) && Character.isDigit(ll[6]) && Character.isDigit(ll[7]) && Character.isDigit(ll[8])){
aa[0]=ll[5];
aa[1]=ll[6];
aa[2]=ll[7];
aa[3]=ll[8];
}else{vrai=false;}
}else if ((ll[2]== '-' && ll[4]=='-')||(ll[2]== '/'&& ll[4]=='/')){
if(Character.isDigit(ll[0])&&Character.isDigit(ll[1]) ){
jj[0]=ll[0];
jj[1]=ll[1];
}else{vrai=false;}
if(Character.isDigit(ll[3])){
mm[0]='0';
mm[1]=ll[3];
}else{vrai=false;}
if(Character.isDigit(ll[5]) && Character.isDigit(ll[6]) && Character.isDigit(ll[7]) && Character.isDigit(ll[8])){
aa[0]=ll[5];
aa[1]=ll[6];
aa[2]=ll[7];
aa[3]=ll[8];
}else{vrai=false;}
}else{vrai=false;}
}// ll.length==9 fin
}else{vrai=false;}
String jour= new String(jj);
String mois= new String(mm);
String annee= new String(aa);
System.out.println("ladate string"+jour+"/"+mois+"/"+annee);
int jjjj= Integer.parseInt(jour);
int mmmm=Integer.parseInt(mois);
int aaaa=Integer.parseInt(annee);
GregorianCalendar ex = new GregorianCalendar();
int an=aaaa;
if(an<(ex.get(Calendar.YEAR)-11) || an>ex.get(Calendar.YEAR)){
vrai=false;
}
if(mmmm<1 || mmmm>12){
vrai=false;
}
if( mmmm==1 || mmmm==3 || mmmm==5 || mmmm==7 || mmmm==8 || mmmm==10 || mmmm==12)
{
if(jjjj<1 || jjjj>31)
{
vrai=false;
}
}
System.out.println("ladate int"+jjjj+"/"+mmmm+"/"+aaaa);
if( mmmm==4 || mmmm==6 || mmmm==9 || mmmm==11)
{
if(jjjj<1 || jjjj>30)
{
vrai=false;
}
}
if( mmmm==2&& ex.isLeapYear(aaaa))
{
if(jjjj<1 || jjjj>29)
{
vrai=false;
}
}
if( mmmm==2 && !ex.isLeapYear(aaaa))
{
if(jjjj<1 || jjjj>28)
{
vrai=false;
}
return vrai;
}
si vrai= true alors c ok voila
// isdate a refaire la methode traditionnelle ou khlasse
boolean vrai=true;
char [] ll =dd.toCharArray();
char[] jj= {'0','0'};//new char[2] ;
char[] mm = {'0','0'};//new char[2];
char[] aa = {'0','0','0','0'};//new char[4];
int cpt1=0;
int cpt2=0;
for (int i=0;i<ll.length;i++)
{
if(ll[i]=='-'){
cpt1++;}
if(ll[i]=='/'){
cpt1++;}
}
if(ll.length<8){
vrai=false;
}
if((cpt1==2 && cpt2==0)||(cpt2==2 && cpt1==0))
{
//ll.length==10 debut
if (ll.length==10)
{
if ((ll[2]== '-'&& ll[5]=='-')||(ll[2]== '/'&& ll[5]=='/'))
{
if(Character.isDigit(ll[0]) && Character.isDigit(ll[1])){
jj[0]=ll[0];
jj[1]=ll[1];
}else{vrai=false;}
if(Character.isDigit(ll[3]) && Character.isDigit(ll[4])){
mm[0]=ll[3];
mm[1]=ll[4];
}else{vrai=false;}
if(Character.isDigit(ll[6]) && Character.isDigit(ll[7]) && Character.isDigit(ll[8]) && Character.isDigit(ll[9])){
aa[0]=ll[6];
aa[1]=ll[7];
aa[2]=ll[8];
aa[3]=ll[9];
}else{vrai=false;}
}else{vrai=false;}
}
//ll.length==10 fin
//ll.length==8 debut
if (ll.length==8)
{
if ((ll[1]== '-' && ll[3]=='-')||(ll[1]== '/'&& ll[3]=='/'))
{
if(Character.isDigit(ll[0]) ){
jj[0]='0';
jj[1]=ll[0];
}else{vrai=false;}
if(Character.isDigit(ll[2])){
mm[0]='0';
mm[1]=ll[2];
}else{vrai=false;}
if(Character.isDigit(ll[4]) && Character.isDigit(ll[5]) && Character.isDigit(ll[6]) && Character.isDigit(ll[7])){
aa[0]=ll[4];
aa[1]=ll[5];
aa[2]=ll[6];
aa[3]=ll[7];
}else{vrai=false;}
}else{vrai=false;}
}
//ll.length==8 fin
//ll.length==9 debut
if (ll.length==9)
{
if ((ll[1]== '-' && ll[4]=='-')||(ll[1]== '/'&& ll[4]=='/'))
{
if(Character.isDigit(ll[0]) ){
jj[0]='0';
jj[1]=ll[0];
}else{vrai=false;}
if(Character.isDigit(ll[2]) && Character.isDigit(ll[3])){
mm[0]=ll[2];
mm[1]=ll[3];
}else{vrai=false;}
if(Character.isDigit(ll[5]) && Character.isDigit(ll[6]) && Character.isDigit(ll[7]) && Character.isDigit(ll[8])){
aa[0]=ll[5];
aa[1]=ll[6];
aa[2]=ll[7];
aa[3]=ll[8];
}else{vrai=false;}
}else if ((ll[2]== '-' && ll[4]=='-')||(ll[2]== '/'&& ll[4]=='/')){
if(Character.isDigit(ll[0])&&Character.isDigit(ll[1]) ){
jj[0]=ll[0];
jj[1]=ll[1];
}else{vrai=false;}
if(Character.isDigit(ll[3])){
mm[0]='0';
mm[1]=ll[3];
}else{vrai=false;}
if(Character.isDigit(ll[5]) && Character.isDigit(ll[6]) && Character.isDigit(ll[7]) && Character.isDigit(ll[8])){
aa[0]=ll[5];
aa[1]=ll[6];
aa[2]=ll[7];
aa[3]=ll[8];
}else{vrai=false;}
}else{vrai=false;}
}// ll.length==9 fin
}else{vrai=false;}
String jour= new String(jj);
String mois= new String(mm);
String annee= new String(aa);
System.out.println("ladate string"+jour+"/"+mois+"/"+annee);
int jjjj= Integer.parseInt(jour);
int mmmm=Integer.parseInt(mois);
int aaaa=Integer.parseInt(annee);
GregorianCalendar ex = new GregorianCalendar();
int an=aaaa;
if(an<(ex.get(Calendar.YEAR)-11) || an>ex.get(Calendar.YEAR)){
vrai=false;
}
if(mmmm<1 || mmmm>12){
vrai=false;
}
if( mmmm==1 || mmmm==3 || mmmm==5 || mmmm==7 || mmmm==8 || mmmm==10 || mmmm==12)
{
if(jjjj<1 || jjjj>31)
{
vrai=false;
}
}
System.out.println("ladate int"+jjjj+"/"+mmmm+"/"+aaaa);
if( mmmm==4 || mmmm==6 || mmmm==9 || mmmm==11)
{
if(jjjj<1 || jjjj>30)
{
vrai=false;
}
}
if( mmmm==2&& ex.isLeapYear(aaaa))
{
if(jjjj<1 || jjjj>29)
{
vrai=false;
}
}
if( mmmm==2 && !ex.isLeapYear(aaaa))
{
if(jjjj<1 || jjjj>28)
{
vrai=false;
}
return vrai;
}
si vrai= true alors c ok voila
switch1
Messages postés
57
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
17 avril 2009
1
28 janv. 2009 à 20:28
28 janv. 2009 à 20:28
Monsieur Hacktrack
ton objet marche pas bien
essayer
year : 2009
mois :1
jours 30 ou 31
!!!!!!!!!!!!!!!!!!!!
ton objet marche pas bien
essayer
year : 2009
mois :1
jours 30 ou 31
!!!!!!!!!!!!!!!!!!!!
cool g
Messages postés
37
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 août 2010
25
5 avril 2009 à 01:49
5 avril 2009 à 01:49
Bonjour
je voudrais récupérer une date d'une JTextField et l'enregistrer dans une base de données Mysql.
j'arrive à l'ajouter mais la date est tjours 15 10 1580, meme si je met une autre date.
parexemple pour ce code la date est tjours 15 10 1580;(et si c d2 que j'enregistre dans ma base de donnée)
comment vais je faire pour insérer une date de naissance 13 02 1987 parexemple
import java.util.*;
public class test{
public static void main(String[]args){
Date d=new Date();
Calendar c1=new GregorianCalendar();
Calendar c=new GregorianCalendar(2009,12,07);
Date d2=((GregorianCalendar)c).getGregorianChange();
d2= new java.sql.Date(d.getTime());
System.out.println(d2.toString()+"\n");
}
}
je voudrais récupérer une date d'une JTextField et l'enregistrer dans une base de données Mysql.
j'arrive à l'ajouter mais la date est tjours 15 10 1580, meme si je met une autre date.
parexemple pour ce code la date est tjours 15 10 1580;(et si c d2 que j'enregistre dans ma base de donnée)
comment vais je faire pour insérer une date de naissance 13 02 1987 parexemple
import java.util.*;
public class test{
public static void main(String[]args){
Date d=new Date();
Calendar c1=new GregorianCalendar();
Calendar c=new GregorianCalendar(2009,12,07);
Date d2=((GregorianCalendar)c).getGregorianChange();
d2= new java.sql.Date(d.getTime());
System.out.println(d2.toString()+"\n");
}
}
Utilisateur anonyme
5 avril 2009 à 08:12
5 avril 2009 à 08:12
Salut,
Tout d'abord, il aurait été préférable d'ouvrir un autre post, car celui-ci concerne un tout autre sujet: contrôler qu'une date est correcte.
Mais bon...
tu demandes:
"je voudrais récupérer une date d'une JTextField et l'enregistrer dans une base de données Mysql.
j'arrive à l'ajouter mais la date est tjours 15 10 1580, meme si je met une autre date.
par exemple pour ce code la date est tjours 15 10 1580;(et si c d2 que j'enregistre dans ma base de donnée)
comment vais je faire pour insérer une date de naissance 13 02 1987 par exemple ..."
Avec Date d=new Date(); nous obtenons la date (et l'heure) système (qui normalement est la date du jour si on n'a pas "bidouillé" cette date du jour) sous cette forme:
d = Sat Apr 04 22:53:11 CST 2009 en faisant un println de d
Avec Calendar c1=new GregorianCalendar(); nous obtiendrons là aussi la date du jour mais sous une toute autre forme.
par exemple, il nous faudra écrire :
int annee = c1.get(Calendar.YEAR); pour obtenir l'année (2009),
int num_mois = c1.get(Calendar.MONTH); pour obtenir le mois (3 car le n° de mois retourné est une valeur de 0 à 11) et
int jour = c1.get(Calendar.DAY_OF_MONTH); pour obtenir le n° de jour du mois (4 car le n° de jour retourné est 1 à 30)
Pour entrer une date particulière ( la date de naissance dont il est question dans ton exemple 13 02 1987):
il faudraet utiliser Calendar c=new GregorianCalendar(int annee, int mois -1, int jour);
soit:
Calendar c=new GregorianCalendar(1987, 1, 13);
Quant à cette ligne :
Date d2=((GregorianCalendar)c).getGregorianChange();
Je ne vois pas ce que tu veux faire, mais c'est elle qui te donne ta fameuse date 15 10 1580 (ou quelque chose comme cà).
Tout celà pour te montrer (ou te rappeler) une toute petite partie de l'utilisation de Calendar.
Mais tu dis que la date que tu veux enregistrer dans ta base de données est à récupérer dans un JTextField.
Sous quelle forme est entrée cette date ? Sous quelle forme veux-tu l'envoyer ?
Tu dois bien avoir un moyen de l'envoyer à ta base sans passer ni par Date, ni par Calendar non !... en faisant un get du JTextField, et en la mettant sous la forme voulue avant de la transférer...
Si tu as des questions à me poser, n'hésites pas (sauf sur Mysql que je n'ai pas, mais quelqu'un d'autre te répondra sans doute).
Cordialement,
Dan
Tout d'abord, il aurait été préférable d'ouvrir un autre post, car celui-ci concerne un tout autre sujet: contrôler qu'une date est correcte.
Mais bon...
tu demandes:
"je voudrais récupérer une date d'une JTextField et l'enregistrer dans une base de données Mysql.
j'arrive à l'ajouter mais la date est tjours 15 10 1580, meme si je met une autre date.
par exemple pour ce code la date est tjours 15 10 1580;(et si c d2 que j'enregistre dans ma base de donnée)
comment vais je faire pour insérer une date de naissance 13 02 1987 par exemple ..."
Avec Date d=new Date(); nous obtenons la date (et l'heure) système (qui normalement est la date du jour si on n'a pas "bidouillé" cette date du jour) sous cette forme:
d = Sat Apr 04 22:53:11 CST 2009 en faisant un println de d
Avec Calendar c1=new GregorianCalendar(); nous obtiendrons là aussi la date du jour mais sous une toute autre forme.
par exemple, il nous faudra écrire :
int annee = c1.get(Calendar.YEAR); pour obtenir l'année (2009),
int num_mois = c1.get(Calendar.MONTH); pour obtenir le mois (3 car le n° de mois retourné est une valeur de 0 à 11) et
int jour = c1.get(Calendar.DAY_OF_MONTH); pour obtenir le n° de jour du mois (4 car le n° de jour retourné est 1 à 30)
Pour entrer une date particulière ( la date de naissance dont il est question dans ton exemple 13 02 1987):
il faudraet utiliser Calendar c=new GregorianCalendar(int annee, int mois -1, int jour);
soit:
Calendar c=new GregorianCalendar(1987, 1, 13);
Quant à cette ligne :
Date d2=((GregorianCalendar)c).getGregorianChange();
Je ne vois pas ce que tu veux faire, mais c'est elle qui te donne ta fameuse date 15 10 1580 (ou quelque chose comme cà).
Tout celà pour te montrer (ou te rappeler) une toute petite partie de l'utilisation de Calendar.
Mais tu dis que la date que tu veux enregistrer dans ta base de données est à récupérer dans un JTextField.
Sous quelle forme est entrée cette date ? Sous quelle forme veux-tu l'envoyer ?
Tu dois bien avoir un moyen de l'envoyer à ta base sans passer ni par Date, ni par Calendar non !... en faisant un get du JTextField, et en la mettant sous la forme voulue avant de la transférer...
Si tu as des questions à me poser, n'hésites pas (sauf sur Mysql que je n'ai pas, mais quelqu'un d'autre te répondra sans doute).
Cordialement,
Dan
Utilisateur anonyme
22 mars 2011 à 18:20
22 mars 2011 à 18:20
Salut,
Dans la BDD il faut que ce soit un String, pas une Date()...
Dans la BDD il faut que ce soit un String, pas une Date()...