Bonjour,
Effectivement cela se produit depuis la version 2.0 (Sulfur) d'Ocelet pour le type Date
. Ce type a été remplacé par le type DateTime
. Pour indiquer que le type Date
est désormais obsolète, celui-ci est barré dans l'éditeur pour vous inciter à utiliser DateTime
à la place.
La documentation a été mise à jour sur le site web d'Ocelet concernant DateTime
.
Les variables de type DateTime
ne sont pas modifiables. C'est à dire que les fonctions qui servent à changer la date et l'heure produisent automatiquement un nouvel exemplaire de DateTime
sans modifier la variable d'origine. Cela permet de ne plus avoir à faire appel à la fonction clone
pour copier une date. Mais cela implique de penser à récupérer le résultat des fonctions modifiant la date ou l'heure, soit dans la même variable soit dans une autre.
Par exemple au lieu d'écrire :
let debut = Date|fromString("yyyy-MM-dd kk:mm","2010-12-25 15:30")
let fin = debut.clone
fin.addWeeks(20) // fin vaut : 2011-05-14 15:30
On écrira désormais :
let debut = DateTime|fromString("yyyy-MM-dd kk:mm","2010-12-25 15:30")
let fin = debut.addWeeks(20) // fin vaut : 2011-05-14 15:30, debut est inchangé
Et si l'on souhaite faire avancer un pas de temps d'une journée par exemple, au lieu de :
let now = new Date
...
now.addDays(1) // now a avancé d'un jour
on écrira :
let now = new DateTime
...
now = now.addDays(1) // important : on récupère le nouveau DateTime résultant dans now