Bonjour ,
J'aborde les langages orienté objet. J'ai pour exercice de créer des objets "date" dans une classe spéciale, puis de les comparer avec la date actuelle, puis les mettre dans le bon ordre. J'ai fais une classe pour entrer les dates, puis une pour la date actuelle. J'ai utilisé la librairie joda (juste pour voir...) et, enfin, je bloque sur la comparaison.
Il y a problème pour comparer les objets et je ne sais pas comment m'y prendre. Si quelqu'un peu au moins m'orienter, ce serait sympa.
Voila mes classes :
la 2eme où j'initialise mes deux dates :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import org.joda.time.DateTime; public class Datemain { private int day0; private int month0; private int year0; public static Datemain createDatemain(){ DateTime tday = new DateTime(); int d0=tday.getDayOfMonth(); int m0=tday.getMonthOfYear(); int y0=tday.getYear(); return new Datemain(d0,m0,y0); } public Datemain (int day0, int month0 ,int year0){ this.day0=day0; this.month0=month0; this.year0=year0; } public String toString(){ return (year0+"/"+month0+"/"+day0); } public int getDay0() { return day0; } public int getMonth0() { return month0; } public int getYear0() { return year0; } public static void main(String[] args) { Datemain tday0 =Datemain.createDatemain(); System.out.println("la date du jour est : "+tday0); } }
la classe où je veux mettre la méthode de comparaison usant de compareTo(au dessus , qui ne marche pas):Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 import java.util.Scanner; import java.util.*; public class Dateinit { private int day; private int month; //constructeur// private int year; public static Scanner sc = new Scanner(System.in); public static Dateinit createDateInit(){ System.out.print(" jour :"); int j = sc.nextInt(); System.out.print(" mois :"); //method creatDateInit renvoie un objet Dateinit int m = sc.nextInt(); System.out.print(" année :"); int a = sc.nextInt(); return new Dateinit(a,m,j); } public Dateinit(int year,int month,int day){ this.day =day; this.month =month; //method Dateinit appellé dans method creatDateInit this.year =year; } //public comapraisdion(Date date) public String toString(){ return (year+"/"+month+"/"+day); } public static void main (String[]args){ Dateinit d1 = Dateinit.createDateInit(); System.out.println("-------"); //appellle de method "createDateInit" à partir du main pour crée les objet d2 et d1; Dateinit d2 = Dateinit.createDateInit();; System.out.println(d1); System.out.println(d2); } public int getDay() { return day; } public void setDay(int day) { this.day = day; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int compareTo(Dateinit d1,Dateinit d2) { //içi j'ai créer une method compareTo qui ne marche pas...// int c1=Integer.parseInt(d1); int c2=Integer.parseInt(d2); if (d1 < d2) return -1; else if(d1 == d2) return 0; else return 1; } }
Voilà où j'en suis. Merci d'avance pour votre aide.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import java.util.*; public class Datecomp { private static String d0; public static void comparaison(Dateinit d1,Dateinit d2,Datemain tday,String tday0){ if (d1.compareTo(d2 ) == -1) { // traitement du cas date1 < date2 System.out.print("cas 1"); } if (d1.compareTo(d2 ) == 0) { // traitement du cas date1 = date2 System.out.print("cas 2"); } if (d1.compareTo(d2) == 1) { // traitement du cas date1 > date2 System.out.print("cas 3"); } } public static void main(String[]args){ String dd0=d0; Dateinit dd1 = Dateinit.createDateInit(); System.out.println("==================="); Dateinit dd2 = Dateinit.createDateInit(); System.out.println("==================="); Datemain tdDay0 =Datemain.createDatemain(); System.out.println("==================="); System.out.println(dd1); System.out.println(dd2); System.out.println(tdDay0); comparaison(dd1,dd2,tdDay0,dd0); } }
PS Je dois faire deux classes au moins. Bien sûr, si vous avez plus simple et fonctionnel, ce n'est pas de refus.^^