bonjour,
je développe un petit programme qui gère des Dates, je rencontre des problèmes :
1/
Classe Date: il existe un constructeur prenant en paramètre trois entier, le premier contenant lannée moins 1900, le second le mois, le troisième le jour. Par exemple, pour créer un objet pour le 14 juillet 1789, il faut appeler le constructeur comme suit:
new Date(1789-1900,7-1,14) ou si vous préférez new Date(-111,6,14). Pourquoi faut-il enlever 1900 à l'année? C'est très étrange et il n'y a pas de justification possible, mais c'est comme cela. Il faut également enlever un au nombre du mois car les mois sont numérotés de 0 à 11 dans la classe Date.
2/ problème de conversion de classe String vers la classe Date
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   
import ...
...
...
   //try {
        //elimination "" et date
        tableau[2] = tableau[2].trim();
        int l3 = tableau[2].length();
        String[] date_tableau = new String[3];
        String temps = tableau[2].substring(1,l3);
        date_tableau = temps.split("/");
        date_tableau[0] = String.valueOf((Integer.parseInt(date_tableau[0]) - 1900)); 
        date_tableau[1] = String.valueOf((Integer.parseInt(date_tableau[1]) - 1));
        Date lejour = new Date(date_tableau[0] + "/" + date_tableau[1] + "/" + date_tableau[2]); // ici mon prog s'arrête !
        
        
        System.out.println(lejour);
     
        
        //}  catch (Exception e2) {
      //System.out.println("Erreur de format date !");
    //}
voici l'erreur retrouné par l'execution
java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:617)
at java.util.Date.<init>(Date.java:274)
at Prog_cvs.main(Prog_cvs.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267)
>
j'ai bien retranché l'année et le mois suivant les spécifications de JAVA de la class Date.
J'ai donc un problème de conversion de la classe String vers la classe Date.