NSV
Messages postés8Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention15 juin 2005
-
15 juin 2005 à 00:43
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 2006
-
22 juin 2005 à 10:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 22 juin 2005 à 10:39
Années bissextiles en Pascal (ça sera plus clair):
function IsLeap(Y:integer):boolean;
begin
IsLeap:=(Y mod 4=0) and ((Y mod 100<>0) or (Y mod 400=0));
end;
Ensuite, voici une syntaxe simple en PHP que j'ai implémenté dans un programme que je posterai bientôt:
BEAUBRIUS
Messages postés120Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 8 février 2008 20 juin 2005 à 19:25
Merci PETER1789
je n'avait pas fait cela car je ne connaisait pas
je debut en php donc j'ai pas tous les truk
C'est sur que ça peu meviter des lignes ...
Merci
cs_peter1789
Messages postés35Date d'inscriptionmercredi 19 janvier 2005StatutMembreDernière intervention22 mai 2006 20 juin 2005 à 13:55
Bonjour BEAUBRIUS,
Bravo pour ton script mais au lieu d'utiliser des tableaux associatifs, c'est-à-dire d'associer une chaîne de caractères (=string) clé à une autre (valeur), tu pourrais utiliser un tableau simple numéroté : par exemple pour $ssjour tu peux faire :
$ssjour = array('Vendredi','Samedi','Dimanche','Lundi', 'Mardi','Jeudi','Vendredi'); et récupérer par exemple 'Samedi' avec $ssjour[1] ...
@+ peter1789
BEAUBRIUS
Messages postés120Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 8 février 2008 16 juin 2005 à 09:52
Grenard , ce system gères avant 1970 mais ça gère aussi plus haut de 2038
J'ai verifier avec l'horlogue de Windows et jusc'en 2099 mon code marche , et je pense que aprés aussi mais je ne peu pas verifier ...
Apres, pour $ssjour qui comporte 2 Vendredi, C'est que les valeur qu'il l'apelle vont de 0 a 7 soit 8 valeur pour 7 jour donc , il y a un jour en double.
Le 0 est rarement apeller , mais je suis tomber 1 foi , ça devait etre que c'etait le 1er Vendredi , soit quelque chose comme 01/01/0000, je me souvien plus trop ...
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 15 juin 2005 à 23:23
Pourquoi $ssjour a deux vendredi ? un modulo ferait l'affaire.
C'est bien tu gères dans le passé avant 1970, mais ca serait bien de gérer plus haut que 2038 :)
massacr
Messages postés233Date d'inscriptionvendredi 2 juillet 2004StatutMembreDernière intervention 4 janvier 2007 15 juin 2005 à 13:21
Mais, avec le timestamp, il le fait pas tout seul PHP ?
D'ailleurs, pour des dates anciennes, est ce que PHP comprend un timestamp négatif ?
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 février 2009 15 juin 2005 à 09:12
Pour beaubrius,
ton système est valable qu'a partir du calendrier Gregorien (an 1582) et encore selon sa date d'adoption dans chaque pays.
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 15 juin 2005 à 09:03
biensur... même si la fac remonte à quelques années pour moi :p
BEAUBRIUS
Messages postés120Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 8 février 2008 15 juin 2005 à 09:01
pour les regle des année bissextiles c'est :
- 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.
Ensuite , j'avait oublier la 3eme regle donc merci de me l'avoir montre.
Pour repondre à NSV , ba à vrai dire , je n'ai pas trés bien compris ce que tu a voulu dire donc ... :(
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008 15 juin 2005 à 07:17
Tu es sûr de ça ? On m'a toujours dit annee / 1000 : OK moi...
donc si je ne me trompe ca devrait donner :
(l 65) if($année4 == $année4r && $année100 != $année100r || $année400 /*que tu dois calculer*/ == $année400r)
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 15 juin 2005 à 06:24
règle des années bissextiles :
annee / 4 : OK
annee / 100 : NOK
annee / 400 : OK
jfperras
Messages postés69Date d'inscriptionvendredi 13 septembre 2002StatutMembreDernière intervention 6 mai 2009 15 juin 2005 à 02:59
Dans la même veine que NSV... à part traduire les jours de la semaine, je ne vois pas autre chose.
alex1025
Messages postés104Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention 8 décembre 2007 15 juin 2005 à 01:14
là ça craint samedi n'a pas de e (Samedie) comme tu l'as ecrit
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008 15 juin 2005 à 00:44
Tu as oublié un détail : 2000 était bissextile ! En effet, on considère les passage au siècle comme non bissextile, mais les passage au millénaire le sont, eux !!!
A part ça, rien à dire de mon côté. 7/10 ;-)
NSV
Messages postés8Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention15 juin 2005 15 juin 2005 à 00:43
La première suggestion qui me vient à l'esprit c'est :
Pourquoi géré les années, les mois et les jours en string alors que ce sont typiquement des entiers (enfin des nombres) ?
En somme pourquoi s'embeter avec les '' et autre "".
22 juin 2005 à 10:39
function IsLeap(Y:integer):boolean;
begin
IsLeap:=(Y mod 4=0) and ((Y mod 100<>0) or (Y mod 400=0));
end;
Ensuite, voici une syntaxe simple en PHP que j'ai implémenté dans un programme que je posterai bientôt:
function UkDayToFr($Day) {
$ConvTbl array ( 'monday'> 'lundi',
'tuesday' => 'mardi',
'wednesday' => 'mercredi',
'thursday' => 'jeudi',
'friday' => 'vendredi',
'saturday' => 'samedi',
'sunday' => 'dimanche'
);
return $ConvTbl[strtolower($Day)];
}
function LongDate($Tm) {
return UkDayToFr(date('l',$Tm)) .' '. date('d',$Tm) .' '. UkMonthToFr(date('F',$Tm)) .' '. date('Y à H:i:s', $Tm);
Et enfin:
http://www.siteduzero.com/php/dates.php
20 juin 2005 à 19:25
je n'avait pas fait cela car je ne connaisait pas
je debut en php donc j'ai pas tous les truk
C'est sur que ça peu meviter des lignes ...
Merci
20 juin 2005 à 13:55
Bravo pour ton script mais au lieu d'utiliser des tableaux associatifs, c'est-à-dire d'associer une chaîne de caractères (=string) clé à une autre (valeur), tu pourrais utiliser un tableau simple numéroté : par exemple pour $ssjour tu peux faire :
$ssjour = array('Vendredi','Samedi','Dimanche','Lundi', 'Mardi','Jeudi','Vendredi'); et récupérer par exemple 'Samedi' avec $ssjour[1] ...
@+ peter1789
16 juin 2005 à 09:52
J'ai verifier avec l'horlogue de Windows et jusc'en 2099 mon code marche , et je pense que aprés aussi mais je ne peu pas verifier ...
Apres, pour $ssjour qui comporte 2 Vendredi, C'est que les valeur qu'il l'apelle vont de 0 a 7 soit 8 valeur pour 7 jour donc , il y a un jour en double.
Le 0 est rarement apeller , mais je suis tomber 1 foi , ça devait etre que c'etait le 1er Vendredi , soit quelque chose comme 01/01/0000, je me souvien plus trop ...
15 juin 2005 à 23:23
C'est bien tu gères dans le passé avant 1970, mais ca serait bien de gérer plus haut que 2038 :)
15 juin 2005 à 13:21
D'ailleurs, pour des dates anciennes, est ce que PHP comprend un timestamp négatif ?
15 juin 2005 à 09:12
ton système est valable qu'a partir du calendrier Gregorien (an 1582) et encore selon sa date d'adoption dans chaque pays.
pour info sur les calendriers,
http://www.chez.com/sarthe/ca-gregorien.htm
15 juin 2005 à 09:03
15 juin 2005 à 09:01
- 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.
Ensuite , j'avait oublier la 3eme regle donc merci de me l'avoir montre.
Pour repondre à NSV , ba à vrai dire , je n'ai pas trés bien compris ce que tu a voulu dire donc ... :(
15 juin 2005 à 07:17
donc si je ne me trompe ca devrait donner :
(l 65) if($année4 == $année4r && $année100 != $année100r || $année400 /*que tu dois calculer*/ == $année400r)
15 juin 2005 à 06:24
annee / 4 : OK
annee / 100 : NOK
annee / 400 : OK
15 juin 2005 à 02:59
15 juin 2005 à 01:14
15 juin 2005 à 00:44
A part ça, rien à dire de mon côté. 7/10 ;-)
15 juin 2005 à 00:43
Pourquoi géré les années, les mois et les jours en string alors que ce sont typiquement des entiers (enfin des nombres) ?
En somme pourquoi s'embeter avec les '' et autre "".