Pc-Soft à travers le WLangage met à disposition des développeurs un très grand nombre de fonctions facilitant le quotidien du développeur.
Lors de la création d'un programme de gestion de date de fin de contrat, j'ai eu à identifier les années bissextiles. Le WLangage n'a pas de fonction permettant de savoir si le fameux 29 février existe pour une année.
C'est pour cette raison que je partage le code de la procédure que j'ai développé pour l'occasion
Code windev : | Sélectionner tout |
1 2 3 4 5 6 7 | PROCEDURE AnnéeBissextile(pi_année est un entier) SI modulo(pi_année, 400) = 0 ALORS RENVOYER Vrai SI modulo(pi_année, 100) = 0 ALORS RENVOYER Faux SI modulo(pi_année, 4) = 0 ALORS RENVOYER Vrai RENVOYER Faux |
L'algorithme mis en place dans cette fonction est celui d'écris sur wikipédia : http://fr.wikipedia.org/wiki/Ann%C3%A9e_bissextile et enseigné dans les écoles de programmation lors des premier TD.
Maintenant, voyons une écriture plus WinDevienne, en utilisant une variable de type date et la fonction DateValide
Code windev : | Sélectionner tout |
1 2 3 4 | PROCEDURE AnnéeBissextile(pi_année est un entier) RENVOYER DateValide(NumériqueVersChaîne(pi_année,"04D") + "0229") |
Attention aux limitations de la fonction DateValide, d'après la documentation officielle :
- Si la date est antérieure au 4 octobre 1582, cette date est considérée comme appartenant au calendrier Julien. Cette date est valide.
- Si la date est postérieure au 15 octobre 1582, cette date est considérée comme appartenant au calendrier Grégorien. Cette date est valide.
Vous avez maintenant le choix entre ces deux écritures, à vous de choisir.
Bon développement à tous