FONCTION QUI RETOURNE L'AGE AVEC LE JOUR/MOIS/ANNÉE DE NAISSANCE
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
24 févr. 2007 à 13:19
cs_linkid
Messages postés100Date d'inscriptionmardi 29 novembre 2005StatutMembreDernière intervention 8 mai 2009
-
5 mars 2007 à 21:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_linkid
Messages postés100Date d'inscriptionmardi 29 novembre 2005StatutMembreDernière intervention 8 mai 2009 5 mars 2007 à 21:28
Pourquoi ne pas mettre un OU alors ?
function EstBissextile($annee) {
return ( (int) $annee%4 === 0 OR $annee%400 !== 0 );
}
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 26 févr. 2007 à 17:19
Pour faire vraiment optimisé, il faudrait voir si $annee%4 === 0 renvoit plus souvent FALSE que $annee%400 !== 0.
Car si c'est $annee%400 !== 0 qui fait plus souvent FALSE, il faut la placer en première dans l'instruction. Un FALSE dans un ET renvoit toujours FALSE et les instructions qui suivent ne sont pas exécuté du tout.
D'où un petit gain en performance :p
(jme change en Antho ^^)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 26 févr. 2007 à 17:16
rho oui en plus :p
Quel boulet ^^
Pour faire vraiment épuré, ca donnerait un truc dans le genre :
ps : perso je rajouretais un cast au début de la fonction... .. .
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 25 févr. 2007 à 19:35
Au passage, les bonnes balises PHP c'est <?php et non <?
Thomas Dellasantina
Messages postés1Date d'inscriptionvendredi 23 février 2007StatutMembreDernière intervention25 février 2007 25 févr. 2007 à 13:49
Oui en effet je me suis bien trompé...
(Source Wikipédia)
Depuis l'instauration du calendrier grégorien, sont bissextiles :
1. les années divisibles par 4 mais non divisibles par 100
2. les années divisibles par 400
Je corrige tout ça dans le code... :)
vilhjalms
Messages postés591Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention16 juillet 20092 24 févr. 2007 à 22:53
Saell og blesuð
Autrement j'approuve les remarques de FhX :)
Vilhjálms Sigurðsdóttir aka Frëyjá
vilhjalms
Messages postés591Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention16 juillet 20092 24 févr. 2007 à 22:52
Saell og blesuð
il me semblait que la verification du modulo de 100 etait egalement utile pour savoir si une annee etait bissextile ?
$annee = 2002;
if (EstBissextile($annee)) {
echo $annee.' est bissextile.';
}else{
echo $annee.' n\'est pas bissextile.';
}
?>
Les années divisibles par 4 sont bissextiles, pas les autres.
Exception : les années divisibles par 100 ne sont pas bissextiles.
Exception à l'exception (!) : les années divisibles par 400 sont bissextiles.
Mais je me trompe peut etre ?
Vilhjálms Sigurðsdóttir aka Frëyjá
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 24 févr. 2007 à 13:19
5 mars 2007 à 21:28
function EstBissextile($annee) {
return ( (int) $annee%4 === 0 OR $annee%400 !== 0 );
}
26 févr. 2007 à 17:19
Car si c'est $annee%400 !== 0 qui fait plus souvent FALSE, il faut la placer en première dans l'instruction. Un FALSE dans un ET renvoit toujours FALSE et les instructions qui suivent ne sont pas exécuté du tout.
D'où un petit gain en performance :p
(jme change en Antho ^^)
26 févr. 2007 à 17:16
Quel boulet ^^
Pour faire vraiment épuré, ca donnerait un truc dans le genre :
function EstBissextile($annee) {
return ( (int) $annee%4 === 0 && $annee%400 !== 0 );
}
7 lignes en 1 seule :)
C'est beau la prog par moment ^^
26 févr. 2007 à 16:57
return ( $annee%4 == 0 && $annee%400 != 0 ) ? TRUE : FALSE;
}
Rooooooo... FhX voyons... .. .
function EstBissextile($annee)
{
return (($annee%4) === 0 && ($annee%400) !== 0);
}
@ tchaOo°
ps : perso je rajouretais un cast au début de la fonction... .. .
25 févr. 2007 à 19:35
25 févr. 2007 à 13:49
(Source Wikipédia)
Depuis l'instauration du calendrier grégorien, sont bissextiles :
1. les années divisibles par 4 mais non divisibles par 100
2. les années divisibles par 400
Je corrige tout ça dans le code... :)
24 févr. 2007 à 22:53
Autrement j'approuve les remarques de FhX :)
Vilhjálms Sigurðsdóttir aka Frëyjá
24 févr. 2007 à 22:52
il me semblait que la verification du modulo de 100 etait egalement utile pour savoir si une annee etait bissextile ?
<?php
function EstBissextile ($annee) {
return (($annee % 4 == 0) && (($annee % 100 != 0) || ($annee % 400 == 0)));
}
$annee = 2002;
if (EstBissextile($annee)) {
echo $annee.' est bissextile.';
}else{
echo $annee.' n\'est pas bissextile.';
}
?>
Les années divisibles par 4 sont bissextiles, pas les autres.
Exception : les années divisibles par 100 ne sont pas bissextiles.
Exception à l'exception (!) : les années divisibles par 400 sont bissextiles.
Mais je me trompe peut etre ?
Vilhjálms Sigurðsdóttir aka Frëyjá
24 févr. 2007 à 13:19
# function EstBissextile($annee) // RETOURNE 1 SI L'ANNEE EST BISSEXTILE
# {
# $modulo4 = $annee%4;
# $modulo400 = $annee%400;
#
# if($modulo4 == 0 AND $modulo400 != 0)
# $bissextile = 1;
# else
# $bissextile = 0;
#
# return $bissextile;
# }
>
function EstBissextile($annee) {
return ( $annee%4 == 0 && $annee%400 != 0 ) ? TRUE : FALSE;
}
# if($jour > $jour_actuel) // Un mois en moins
# $nbr_mois = 12 - ($mois - $mois_actuel) - 1;
# else
# $nbr_mois 12 - ($mois - $mois_actuel);
>
$nbr_mois = ( $jour > $jour_actuel ) ? 12 - ($mois - $mois_actuel) - 1 : 12 - ( $mois - $mois_actuel );
# for($i = 0 ; $i < $nbr_annees ; $i++)
# {
# $annee_i = $annee+$i;
# if(EstBissextile($annee_i))
# $age_en_jours += 366;
# else
# $age_en_jours += 365;
# }
>
for ( $i=0, $annee_i=$annee; $i<$nbr_annee; $i++, $annee++) {
$age_en_jours += ( EstBissextile($annee_i) ) ? 366 : 365;
}
Y'a de quoi faire :)