Donner une date , obtener un jour

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 461 fois - Téléchargée 29 fois

Contenu du snippet

Donc , une fonction , qui fait que vous lui donnée une date jj/mm/aaaa sans les zéros initiaux pour les jour et les mois
et la fonction vous retournera le jour de la date et 1 si l'année est bisectile et 0 si elle ne l'est pas
Cette fonction est senser marcher pour nimporte quel date au contraire de /date('D/L') qui ne marche que du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT

Source / Exemple :


function année($jour, $mois, $année)
 {

  $ssjour = array(
   '0' => 'Vendredi',
   '1' => 'Samedi',
   '2' => 'Dimanche',
   '3' => 'Lundi',
   '4' => 'Mardi',
   '5' => 'Mercredi',
   '6' => 'Jeudi',
   '7' => 'Vendredi',

  );

  $sssbjour = array(
   '1' => '0',
   '2' => '31',
   '3' => '60',
   '4' => '91',
   '5' => '121',
   '6' => '152',
   '7' => '182',
   '8' => '213',
   '9' => '244',
   '10' => '274',
   '11' => '305',
   '12' => '335',
  );

  $sssjour = array(
   '1' => '0',
   '2' => '31',
   '3' => '59',
   '4' => '90',
   '5' => '120',
   '6' => '151',
   '7' => '181',
   '8' => '212',
   '9' => '243',
   '10' => '273',
   '11' => '304',
   '12' => '334',
  );

  $année1 = $année;

  $année100 = ($année1 / 100);
  $année400 = ($année1 / 400);
  $année4 = ($année1 / 4);
  if($année1 <= '0')
  {
   $année400r = round(($année1 / 400)+0.5);
   $année100r = round(($année1 / 100)+0.5);
   $année4r = round(($année1 / 4)+0.5);  
  }
  else
  {
   $année400r = round(($année1 / 400)-0.5);
   $année100r = round(($année1 / 100)-0.5);
   $année4r = round(($année1 / 4)-0.5);
  }
  $annéebxr = ($année4r - $année100r + $année400r); //Nombre d'année bissextile depuis l'an 0000

  if($année4 == $année4r && $année100 != $année100r || $année400 == $année400r) // L'année est elle bissextile ou pas ?
  {
   $annéebissextile = "1"; // Oui
   $nbrmjour = $sssbjour[$mois];
  }
  else
  {
   $annéebissextile = "0"; // Non
   $nbrmjour = $sssjour[$mois];
  }

  $nbrmois = (($année1 * 12) + ($mois - 1)); // Nombre de mois qu'il y a eu depuis l'an 0000

  $nbrjour = ((($année1 * 365) + $annéebxr + ($jour))+ $nbrmjour); // Nombre de jour qu'il y a eu depuis l'an 0000

  $sjour =  $ssjour[($nbrjour - (round(($nbrjour / 7) -0.5)*7))]; 
  
  
  return " $sjour / $annéebissextile "; 
 }

Conclusion :


J'aimerai avoir vos avis sur ce code , me prevenir si vosu rencontre des bugs ...

Merci

A voir également

Ajouter un commentaire

Commentaires

cs_grandvizir
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10 -
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:

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
BEAUBRIUS
Messages postés
120
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
8 février 2008
-
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és
35
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2006
-
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és
120
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
8 février 2008
-
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és
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
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 :)

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.