Bonjour, je suis actuellement nouveau en programmation j'apprends le language Caml. Je cherche à créer un script capable de vérifier si une date est valide ou non, puis à rendre une chaine de caractères contenant la date. Ceci est mon code. Je reçois un message d'erreur à la compilation; comme quoi "est_bissextile" est une booléenne alors qu'un entier est attendu. Je ne comprends pas comment je pourrais modifier ça pour que ça puisse marcher...
Et puis j'ai un deuxième problème. Je dois écrire une fonction "string_of_date" qui, à partir d’un élement de type date rend une chaîne de
caractère contenant la date en utilisant l’opérateur "^".
Ci-dessous un de mes essais, qui n'est pas concluent...
Quelqu'un pourrait-il m'aider?
Merci d'avance
Code:let string_of_date date(jour:date) (mois:date) (annee:date) = jour^mois^annee;;
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 let nb_de_jours est_biss num_mois = match num_mois with | 1 -> 31 | 2 -> if est_biss then 29 else 28 | 3 -> 31 | 4 -> 30 | 5 -> 31 | 6 -> 30 | 7 -> 31 | 8 -> 31 | 9 -> 30 | 10 -> 31 | 11 -> 30 | 12 -> 31 | _ -> failwith "Numero de mois errone";; let bissextile a = ( a mod 4 = 0) && ( a mod 100 <> 0 || a mod 400 = 0);; type date = { jour:int ; mois:int ; annee:int };; let date_valide j m a = let est_bissextile = bissextile a in let nb_jour_max_mois = nb_de_jours m est_bissextile in if m > 12 || m < 1 then failwith "Numero de mois errone" else if j < 1 || j > nb_jour_max_mois then failwith "Numero de jour errone" else { jour=j; mois=m ; annee= a};;