bonjour,
je développe un petit programme qui gère des Dates, je rencontre des problèmes :
1/2/ problème de conversion de classe String vers la classe DateClasse 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.
voici l'erreur retrouné par l'execution
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 !"); //}
j'ai bien retranché l'année et le mois suivant les spécifications de JAVA de la class Date.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 donc un problème de conversion de la classe String vers la classe Date.
Partager