begin process at 2012 02 12 19:32:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > DONNER UNE DATE , OBTENER UN JOUR

DONNER UNE DATE , OBTENER UN JOUR


 Information sur la source

Note :
8,25 / 10 - par 4 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Niveau :Débutant Date de création :14/06/2005 Date de mise à jour :15/06/2005 09:02:38 Vu :7 519

Auteur : BEAUBRIUS

Ecrire un message privé
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

 Description

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

  • 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 ";
  • }
 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


 Historique

14 juin 2005 23:42:41 :
Quelque modification des commentaire que j'avait oublier
15 juin 2005 09:02:39 :
Correction de quelque bugs

 Sources du même auteur

Source avec Zip Source avec une capture GRAPHIQUE CAMEMBERT 3D
Source avec Zip SYSTEM DE NEWS ( JUSTE LA BASE ) SANS BDD

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

Commentaires et avis

Commentaire de NSV le 15/06/2005 00:43:39

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 "".

Commentaire de dominion le 15/06/2005 00:44:46

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 ;-)

Commentaire de alex1025 le 15/06/2005 01:14:03

là ça craint samedi n'a pas de e (Samedie) comme tu l'as ecrit

Commentaire de jfperras le 15/06/2005 02:59:08

Dans la même veine que NSV... à part traduire les jours de la semaine, je ne vois pas autre chose.

Commentaire de sebmafate le 15/06/2005 06:24:14 administrateur CS

règle des années bissextiles :
annee / 4 : OK
annee / 100 : NOK
annee / 400 : OK

Commentaire de dominion le 15/06/2005 07:17:57

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)

Commentaire de BEAUBRIUS le 15/06/2005 09:01:31

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 ... :(

Commentaire de sebmafate le 15/06/2005 09:03:42 administrateur CS

biensur... même si la fac remonte à quelques années pour moi :p

Commentaire de garfield90 le 15/06/2005 09:12:38

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.

pour info sur les calendriers,
http://www.chez.com/sarthe/ca-gregorien.htm

Commentaire de massacr le 15/06/2005 13:21:16

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 ?

Commentaire de GRenard le 15/06/2005 23:23:48

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 :)

Commentaire de BEAUBRIUS le 16/06/2005 09:52:35

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 ...

Commentaire de peter1789 le 20/06/2005 13:55:19

                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

Commentaire de BEAUBRIUS le 20/06/2005 19:25:26

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

Commentaire de grandvizir le 22/06/2005 10:39:42

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 <b>à</b> H:i:s', $Tm);

Et enfin:
http://www.siteduzero.com/php/dates.php

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales