Ik heb geprobeerd om met behulp van de klasse Calendar een methode te maken die controleert of een datum correct is (dus niet iets al 40 april oid). Maar op de een of andere manier wil het echt niet werken.
Dit is wat ik heb:
Ik heb het een en ander opgezocht, en het blijkt dat de set() methode van Calendar een exception moet genereren als er een foutieve datum is ingevoerd, mits de lenient op false staat. Maar wat ik ook probeer aan incorrecte data op te geven, de methode geeft geen exception
Iemand enig idee
Dit is wat ik heb:
Java:
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
| import java.io.*; import java.util.*; class Main { public static void main(String[] arg) throws IOException { BufferedReader myIn = new BufferedReader (new InputStreamReader (System.in)); String strDag, strMaand, strJaar; // Vraag datum op System.out.print("Geef dag in max. 2 cijfers: "); System.out.flush(); strDag = myIn.readLine(); System.out.print("Geef maand in max. 2 cijfers: "); System.out.flush(); strMaand = myIn.readLine(); System.out.print("Geef jaar in max. 2 cijfers: "); System.out.flush(); strJaar = myIn.readLine(); // Parse datum naar Integers int intDag, intMaand, intJaar; intDag = Integer.parseInt(strDag); intMaand = Integer.parseInt(strMaand); intJaar = Integer.parseInt(strJaar); // Invullen in Calendar object Kalender kalender = new Kalender(); System.out.println(kalender.checkDate(intDag, intMaand, intJaar)); } } import java.util.*; class Kalender extends Calendar { public Kalender() { } public boolean checkDate(int dag, int maand, int jaar) { boolean value = true; try { setLenient(false); set(jaar, maand, dag); } catch (Exception e) { value = false; } return value; } // Abstract methods of class Calendar public void add(int field, int amount) { } public void computeFields() { } public void computeTime() { } public int getLeastMaximum(int field) { return -1; } public int getGreatestMinimum(int field) { return -1; } public int getMaximum(int field) { return -1; } public int getMinimum(int field) { return -1; } public void roll(int field, boolean up) { } } |
Ik heb het een en ander opgezocht, en het blijkt dat de set() methode van Calendar een exception moet genereren als er een foutieve datum is ingevoerd, mits de lenient op false staat. Maar wat ik ook probeer aan incorrecte data op te geven, de methode geeft geen exception
Iemand enig idee
[ Voor 6% gewijzigd door Priet op 27-05-2003 18:16 ]
"If you see a light at the end of a wormhole, it's probably a photon torpedo!"