Developpez.com - Rubrique WinDev

Le Club des Développeurs et IT Pro

WinDev - WebDev - WinDev Mobile : Année bissextile

Par dsr57

Le 18/04/2015, par dsr57, Rédacteur/Modérateur
Ce billet traite du cas de l'année est bissextile dans les EDI Pc-Soft.


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 :
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 :
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
  Billet blog