CALCUL ANNÉES BISSEXTILES

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 15 déc. 2006 à 15:25
mikadom Messages postés 1 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 26 novembre 2008 - 26 nov. 2008 à 15:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40733-calcul-annees-bissextiles

mikadom Messages postés 1 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 26 novembre 2008
26 nov. 2008 à 15:48
Code bien pratique merci
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
20 déc. 2006 à 14:50
Bel exemple de off topic... vous pouvez pas en discuter sur le forum... ça évitera à tout le monde de recevoir des mails pour rien... et au serveur d'en envoyer par la même... merci... .. .

@ tchaOo°
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
20 déc. 2006 à 14:28
putain me manque le dernier il prend trop de ram lol
tant pis
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
20 déc. 2006 à 14:27
J'ai validé tous les programmes ...

Louis
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
20 déc. 2006 à 14:23
bon ben alors des que j'ai un peu de temps je vais voir ce site ,, france ioi il a l'air pas mal du tout

je pense quand meme etre pris en demis final

juste une question ta validé le dernier programme ?
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
20 déc. 2006 à 14:17
Sur , nan .. mais j'ai tellement progressé depuis l'année derniere en algorithmique notamment sur france ioi que j'ai de grandes chances d'être repris ^^
Louis
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
20 déc. 2006 à 14:02
lol vous etes sur d'etre pris a nouveau ? :p
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
20 déc. 2006 à 12:53
rrk275, finale toi aussi ( tu dois pas te souvenir mais on a joué ensemble à la finale ( warcraft? ) .. )
classement euh .. 63 ... ferais mieu l'année prochaine ^^
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 déc. 2006 à 12:49
rrk275, finale toi aussi, c'est quoi ton classement ? (par curiosité :) ) moi aussi, j'y étais, j'ai pas été super bien classé, mais bon, c'est déjà ça...
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
19 déc. 2006 à 22:39
je connaissais pas ce site ...

j'irais faire quelques tour de temps en temps pour faire un pb par ci par la
en tout ils sont assez interressant

mais les enonces par toujours clair lol
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
19 déc. 2006 à 22:33
c'est bon je l'ai le site
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
19 déc. 2006 à 22:33
france ioi ? je regarde
en attendant ta un lien stp ?

finale ? putain le reve pour moi meme si j'ai mon bac pas longtemps apres :s
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
19 déc. 2006 à 22:31
Euh l'année derniere j'esperais au moins aller en demi je suis allé en finale. Faut savoir que le niveau n'est pas hyper exigeant et si tu veux vraiment t'entrainer je te conseille le site France ioi.

Moi je passe tous les tests du dernier ( du 2eme coup je l'avoue .. ) ^^ et comme dit dans je sais plus où tu as toutes les chances d'être pris sans cela.

bonne chance ..
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
19 déc. 2006 à 22:24
non trop blaze je l'i decouvert que cette annee

ca a l'air trop enorme en plus !!!
j'espere arrive au moins jusqu'au demis ...

mais j'ai le dernier qui bouffe un peu de ram ...
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
19 déc. 2006 à 22:22
D'ailleur ce code permettrait de passer une des épreuves ..


"je vais retourner m'entrainer pour prologin :) "
lol

euh, sheorogath, etait tu l'année derniere à prologin?
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
19 déc. 2006 à 19:06
mdr t'en est ou des preselection ?
perso je les ai fini je vais bientot renvoyer le truc
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2006 à 18:36
:) Kirua, t'as encore de la marge sur moi en C et Cpp, mais depuis que tu m'as tourné vers le php, je penses que j'ai fais beaucoup de progrès :) Allez, je vais retourner m'entrainer pour prologin :)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 déc. 2006 à 15:19
Grilled ;-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 déc. 2006 à 15:18
La comparaison typée est quand même plus rapide; et puis, on attend un 0 de type entier, pas un 0 de type booléen par exemple...c'est plus strict, et donc c'est une bonne habitude à prendre, Coucou a raison. Même si il y a peu de chance que l'opérateur modulo renvoie autre chose qu'un entier, on est d'accord.
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 déc. 2006 à 15:16
Si ça peut très bien s'appliquer ici... d'une manière générale mieux vaut utiliser la comparaison typée comme le suggère coucou747 c'est plus rapide à l'éxécution... sauf dans certains cas ou une comparaison non typée s'impose... .. .

@ tchaOo°
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 déc. 2006 à 15:10
Ça c'est pour des comparaisons spéciales en PHP pour lever certaines ambiguïtés il me semble, ça ne s'applique pas ici, si? Le PHP, ça fait lgtps pour moi ...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2006 à 13:09
puisque vous débatez sur une poussière de propreté, alors un === vaut mieux qu'un == et un !== vaut mieux qu'un !=
Skreo Messages postés 53 Date d'inscription samedi 12 novembre 2005 Statut Membre Dernière intervention 25 août 2008
18 déc. 2006 à 23:22
Ouép, perso je fais comme ça :

function bissextile($annee){
return ($annee%4==0 && $annee%100!=0) || $annee%400==0;
}

J'allais dire la même chose que kankrelune, c'est plus simple sans if ^^ Et le fait d'utiliser le % (pour calculer le reste) est plus propre
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
18 déc. 2006 à 12:10
pour tester si un nombre est divisible par un autre, vaut mieux calculer le reste de la division avec l'opérateur modulo:

if($n % $m == 0) { /* n est un multiple de m */ }
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
18 déc. 2006 à 11:40
Oula me suis relu .. et je revois mon code ..
if($annee<1584)
return is_int($annee/4);

kankrelune, bonne réaction mais deja dit ^^

Louis
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
18 déc. 2006 à 11:10
Euuuuh... .. .

function bissextile($annee)
{
return ((is_int($annee/4) && !is_int($annee/100)) || is_int($annee/400));
}

C'est plus simple sans if()... non... .. ?

@ tchaOo°
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
16 déc. 2006 à 18:03
if($annee<1584)
return false;

et voila ^^

Louis
pilou92 Messages postés 8 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 16 décembre 2006
16 déc. 2006 à 17:54
RRK275 > Non du tout, d'ailleur tu as raison sur le fait que j'aurai du utiliser la fonction pour illustrer l'exemple. Je vai refaire la source plus proprement.

coucou747 > je ne suis pas d'accord avec toi, tout dépend de la finalité de ton appli. Actuellement, je developpe un site astro pour un client, d'où la proposition de ce script, et je peux t'assurer que ça m'est tres utile.

sheorogath > Je pense que c'est faisable, c'est juste un problème de calendrier.
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
16 déc. 2006 à 12:42
ca aurait ete bien que ce code gere les annees inferieur a 1584...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 déc. 2006 à 12:27
utiliser ajax et un script php pour déterminer si une année est bissextile sans recharger la page? la technologie vous tuera: on peut faire ça en javascript normal depuis dix ans!
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
16 déc. 2006 à 10:27
quand tu fais du php, une date n'a aucune raison d'être un objet... c'est bien plus facile de la manipuler en tant que chaine ou que timestamp... pour un vrai soft, quand ton objet persiste, oui... pourquoi pas, mais là, non
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
15 déc. 2006 à 21:39
J'ai l'impression de mettre mal exprimé, et je m'en excuse si tu t'es senti attaqué ... je vais donc essayer de rattraper mes propos.

"pourquoi faire une fonction que tu ne reutilise pas pour faire le tableau ?"
Je voulais juste signaler que tant qu'a faire .. pourquoi ne pas l'utiliser.

"moi je fais dans le synthetyique mais
function bissextile($annee) {
if( (is_int($annee/4) && !is_int($annee/100)) || is_int($annee/400)) {
return TRUE;
} else {
return FALSE;
}
}
c'est pleonasmique .."
Je signalais que faire du
if(test)
return true;
else
return false;

c'était pleonasmique et que ca revenait à cela :

return test;// question de gout mais c'est aussi simple..

et puis je n'oserais pas remettre en cause un code que j'ai moi même programmer de maniere similaire dans le cadre de prologin ( .. un peu simple .. certes ^^ )

Louis
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 déc. 2006 à 19:47
Hello,

je suis plutôt contre les codes très courts dans cette section de CS, mais là...je pense que ça servira à certains. Donc oui, je pense qu'elle peut rester. Même si, je le répête...généralement, je n'accepte pas de code aussi court.
Evidemment, je préfèrerais la voir dans les snippets (http://www.codyx.org).

Je suis d'accord avec RRK275 pour ce qui concerne l'exemple : tu devrais utiliser ta fonction, tant qu'à faire.

Je ne suis pas d'accord avec Coucou, de telles fonctions peuvent très bien devenir des méthodes. Moi, j'ai des méthodes calculant des bornes de date, des delta, des délais, les jours ouvrés, etc...dans certains objets. Quand on fait une appli logistique, par exemple...Le tout est de structurer correctement ton modèle pour qu'il ne soit pas incohérent. Mais une classe (ou plusieurs) gérant ce genre de trucs me parait tout à fait viable.
T'es pas obligé de gérer 'est ce bien une année ? comment est-elle formattée? etc...' dans cette méthode précisément. Et à dire vrai, je pense même que ce n'est pas à une telle méthode de gérer ça. Une date est formattée, puis on l'utilise. Pas l'inverse : on l'utilise, mais on la formatte en même temps histoire de...

Mais bon, ça reste une question de point de vue et de façon de coder, après tout :-)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 déc. 2006 à 19:16
une fonction comme ça, dans une classe ??? euh... désolé, mais je penses que non... une fonction comme ça, ça ne traite pas un objet, ni un type, sauf si tu fais une classe date... mais là, ça va pas être bon, car il ne pourra pas traiter des résultats de mysql facilement... bref, une classe date n'est pas une bonne idée, et donc, cette fonction n'a rien à faire dans un objet...

Mais la laisser sous forme de fonction, moi je trouves ça bien
pilou92 Messages postés 8 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 16 décembre 2006
15 déc. 2006 à 19:02
coucou74 > ce que je voulais dire par là, c'est que cette fonction peut être ajouter à une class et juste vérifié si la condition est vrai ou pas ... je me suis mal exprimé.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 déc. 2006 à 18:40
"L'avantage d'une fonction même courte, c'est justement de pouvoir l'utiliser comme un "objet""

euh.... détaille stp... j'ai peur de mal comprendre...
pilou92 Messages postés 8 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 16 décembre 2006
15 déc. 2006 à 18:38
rrk275 > L'avantage d'une fonction même courte, c'est justement de pouvoir l'utiliser comme un "objet" dans d'autres scripts. L'intéret n'est pas tant dans la construction du tableau, qui ne sert à rien pour controler ce qu'a saisi l'utilisateur, mais c'est de pouvoir vérifier si une année est bissextile en 1 ligne de code, en appelant la fonction : bissextile($annee). Elle peut etre utiliser par exemple avec ajax. Après chacun l'adapte à ses besoins (ex : a la place de TRUE du peut renvoyer 29 et de FALSE 28)

De plus, j'ai beaucoup vu de scripts de calcul d'années bissextiles écrits comme ça : if( (aa/4=0 && aa/100!=0) || aa/400=0 )
Or, cette condition est fausse et peut retouner des erreurs.
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
15 déc. 2006 à 17:46
2/3 ptites choses .. un code comme ca a t il sa place ?
pourquoi faire une fonction que tu ne reutilise pas pour faire le tableau ?
moi je fais dans le synthetyique mais
function bissextile($annee) {
if( (is_int($annee/4) && !is_int($annee/100)) || is_int($annee/400)) {
return TRUE;
} else {
return FALSE;
}
}
c'est pleonasmique ..

Louis
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 déc. 2006 à 15:25
pour un code aussi court, t'aurais pu afficher le code...

tu devrais remplacer tes " par des '
Rejoignez-nous