Alias retourne l'age selon une date

Soyez le premier à donner votre avis sur cette source.

Snippet vu 1 453 fois - Téléchargée 12 fois

Contenu du snippet

;Voici encore un alias retournant l'age selon la date qu'on donne et en plus basé sur un principe connu depuis des années par les scripteurs !!!
;La seule différence est que par une simple solution que j'explique, j'ai outrepassé la limite de $ctime qui bloquait les alias avec les années avant 1970.
;L'utilisation est donc sous forme : $getage(JJ/MM/AAAA) - $getage(JJ-MM-AAAA) - $getage(JJMMAAAA)

alias getage {
  ;Je commence par vérifier si la syntaxe de la date donnée est correcte.
  if (!$regex($1,dd([/-])dd(?:1)(d{4}))) return
  Je vérifie ensuite si mon année est inférieur à 1970 puisque c'est là que ça bloque avec l'identifieur $ctime
  Si c'est le cas j'enregistre la différence entre les deux dates dans ma variable edif
  if ($regml(2) < 1970) var edif 1970 - $v1
  ;Dans le cas ou ma date est inférieur à 1970 j'ai donc ma variable edif qui est présente et va permettre à mon if de se faire
  ;j'utilise $int pour ne pas me ramasser avec un chiffre à virgule à rallonge.
  ;j'utilise $ctime pour retourner le temps en seconde depuis le 1er janvier 1970 à minuit que je divise par 31556952.(1an voir plus bas).
  ;En toute logique je n'ai juste qu'à rajouter ma différence contenu dans ma variable edif par ce que mon premier calcul me retournera.
  ;Nous prenons 365.2425 pour le nombre de jour dans une année.
  ;84600 est le nombre de secondes dans une journée
  ;$calc(365.2425*86400) = 31556952 secondes (Explications : http://www.hawkee.com/snippet/647/#c58795)
  if (edif) return $int($calc($ctime /31556952 $v1))
  ;Si mon année est supérieur à 1970 je vais calculer la différence entre le $ctime actuel et le $ctime de la date que vous donnez
  else return $int($calc(($ctime - $ctime($1))/31556952))
}


;Dans l'optique d'une explication clair et plus compréhensif je n'ai pas utilisé de $iif(edif,) pour retourner mon résultat possible et je ne cherche pas à produire le code le plus petit.
;Voilà c'était aussi simple que cela au final.
;Je n'ai trouvé que l'idée permettant d'aller à une date ultérieur à 1970 le plus simplement possible je crois.

Compatibilité : 1

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.