begin process at 2012 05 27 22:03:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALENDRIER

CALENDRIER


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :calendrier, simple, optimiser Niveau :Débutant Date de création :07/01/2011 Vu / téléchargé :5 122 / 607

Auteur : gabay

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

 Description

Salut, tout le monde voilà j'ai créer ce petit calendrier totalement paramétrable on peut même ajouter des lien sur les jour .. bref en fait comme vous le constater ce code est très long et si quelqu'un peut m'aide à l'optimisé (diminué le nombre de ligne de code il y en a plus de 1000 ligne)

bon allé merci :)



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

RECHERCHE PAR MOT CLÉ DANS TOUS LES CHAMPS DE TOUTES LES TAB...

 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
CALENDRIER SIMPLE par manuche
Source avec Zip Source avec une capture [POO] OBJET CONVERTISSANT UN NOMBRE DE SECONDES EN DIFFÉRENT... par Dariumis

 Sources en rapport avec celle ci

COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette
Source avec Zip Source avec une capture CALENDRIER RÉSERVATION POUR CHAMBRES D'HÔTES EN PHP MYSQL par oallais
Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALENDRIER SIMPLE, FACILEMENT MODIFIABLE, AFFICHAGE COMPLET par greenzest
Source avec Zip Source avec une capture SIMPLECALENDRIER par yannvag

Commentaires et avis

Commentaire de beschtraffer le 10/01/2011 08:11:26

Bonjour,

Déjà je trouve que ce calendrier est joli, et qu'il faut du courage pour écrire 1000 lignes de code ;)

Je suis moi même en train de coder un calendrier, et j'ai une ou deux idées pour vous aider à raccourcir un peu le code.

Il existe une fonction en php: cal_days_in_month(CAL_GREGORIAN, date("n"), date("Y")) qui permet d'obtenir le nombre de jours dans le mois (à partir du mois et de l'année). Ce qui est bien pratique.

Personnellement, pour faire le calendrier, j'ai fait un tableau que j'ai rempli en une seule boucle. Si le compteur de la boucle était inférieur à 'date("w",mktime ( 0,0,0,$mois ,1,$annee))', le tableau est vide, sinon je mets la valeur du compteur (+ le décalage de la valeur du premier jour) jusqu'à la valeur du nombre de jours dans le mois.

Du coup le code ne fait que 30 lignes. Bon, étant débutant, ce n'est pas forcément la méthode idéale que je propose... Mais si ça peut faire gagner quelques lignes

Pour ce qui est de l'optimisation du code lui-même, lorsque vous mettez 'else if', vous pouvez plutôt écrire 'elseif' ça permet de ne créer qu'un boucle conditionnelle (comme un switch...case) au lieu de boucles if...else imbriquées. Ce serait un tantinet plus rapide.

J'espère avoir pu aider, et dès que j'en aurai fini avec mon calendrier, je posterai la source, ce sera plus clair que mon explication...

En espérant que vous aurez quelques commentaires de vrais "experts", ça m'intéresse aussi

Bonne journée!

Commentaire de catlord le 10/01/2011 19:56:59 1/10

Quand deux lignes de code se ressemblent en PHP, quelque chose ne va pas... Le script est bcp trop long et il doit être normalement possible d'afficher un calendrier perpétuel en quelques lignes.

Commentaire de gabay le 12/01/2011 01:39:31

Merci énormément pour votre aide, en fait je me remet maintenant sur ce calendrier et d'ici un jour ou deux je posterai quelque chose de plus simple et biensur qui soit meilleur.

ps: je connaissais pas la fonction cal_days_in_month(CAL_GREGORIAN, date("n"), date("Y")) mais maintenant je pense qu'elle aidera beaucoup

Commentaire de Mister Jingles le 18/01/2011 12:28:09

Bonjour,

PHP est aujourd'hui très complet au niveau des fonctions pour calculer et afficher un calendrier. (cf PHP Manual -> http://fr2.php.net/manual/fr/book.calendar.php) J'ai pas regardé en détail le code mais je pense qu'il est possible de faire le même en moins de 200 lignes (peut être même moins de 100 lignes.

Pour aider un peu, voici ma classe calendrier en PHP5:
http://www.phpcs.com/codes/CLASSE-CALENDRIER_49347.aspx

Bon courage.

Commentaire de 007Julien le 04/02/2011 15:27:29

Les plus paresseux sont les meilleurs en programmation, avec quelques boucles et cogitations ils évitent bien des répétitions !

Voici une variante commentée en moins de 50 lignes (et 2Ko au lieu de 27).

<style>
td {font-size:11px;vertical-align:middle;text-align:center;background:#b9b9b9;font-weight:900;color:#fff;}
td a {text-decoration:none;color:#fff;font-weight:900;}
</style>
<?php
// sortir les accents en précisant le charset
  header("Content-Type: text/html; charset=utf-8");
// Initialisation et nom du fichier qui pourra être renommé sans autre intervention
  $ms=explode('|','Janvier|Février|Mars|Avril|Mai|Juin|Juillet|Août|Septembre|Octobre|Novembre|Décembre');
$slf=basename($_SERVER['PHP_SELF']);

// Les années, mois et jours d'ouverture de la page
$an=date('Y');$mo=date('n');$jr=date('j');

// à modifier si nécessaire
if (!empty($_GET) && isset($_GET["a"])&& isset($_GET["m"])) {
$an=$_GET["a"];$mo=$_GET["m"];}

// le premier jour du mois et la colonne correspondante (à partir de 0 pour le lundi)
$jo=mktime(0,0,0,$mo,1,$an);$co=(date('w',$jo)+6)%7;
// le dernier jour du mois et la durée du mois
$jz=mktime(0,0,0,$mo+1,0,$an);$dm=date('j',$jz);

// Construire le tableau
$chnCal='<table border="0" cellspacing="3" cellpadding="0">';
$chnCal.='<tr height="20"><td><a href="'.$slf.'?a='.$an.'&m='.($mo-1).'"><<</a></td>';
$chnCal.='<td colspan="5">'.$ms[$mo-1].' '.$an.'</td>';
$chnCal.='<td width="22"><a href="'.$slf.'?a='.$an.'&m='.($mo+1).'">>></a></td></tr>';
$chnCal.='<tr height="17">';
for ($cl=0;$cl<7;$cl++){$chnCal.='<td width="22">'.substr("LuMaMeJeVeSaDi",2*$cl,2).'</td>';}
$chnCal.='</tr>';
// Initialiser le quantième du mois qui doit prendre la valeur 1 dans la colonne $co
$qm=1-$co;
for ($lg=2;$lg<8;$lg++) {
  $chnCal.='<tr height="17">';
for ($cl=0;$cl<7;$cl++){
  // Afficher les seuls quantièmes du mois
if ($qm<1 || $dm<$qm) $chnCal.='<td width="22">&nbsp;</td>';
else $chnCal.='<td width="22">'.$qm.'</td>';
// incrementer le quantième
$qm++;}
$chnCal.='</tr>';}
$chnCal.='</table>';
// Afficher le tableau
echo $chnCal;
?>

Inutile d'aller chercher des classes et complications quant la durée d'un mois est déterminée par le quantième de son dernier jour qui est aussi, en PHP, le jour 0 du mois suivant (voir la ligne 22).

Enfin, pourquoi faire appel au serveur pour afficher un tel calendrier, de tels scripts auraient, semble-t-il, meilleure place à la rubrique javascript. Le nombre de jour du mois mo de l'année an serait alors obtenu par la simple différence 32 - new Date(an,mo,32).getDate() !

Alors bon courage pour la transcription avec de belles boucles sur nos drôles de machines...  

Commentaire de 007Julien le 04/02/2011 16:04:47

Une omission dans le code précédent, il faut revenir à un mois effectif ($mo compris entre 1 et 12 avec correction de l'année) avant de construire le tableau.
Insérer alors la ligne suivante après la définition de $jo ou de $jz :
$an=date('Y',$jo);$mo=date('n',$jo);

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

calendrier multi utilisateurs très simple ? [ par pti_suisse ] bonjour, en fait voila j'aimerais mettre sur mon site un espace ou l'on pourrait cr&#233;&#233; son calendrier et changer les couleur de certaines cel CALENDRIER de réservation. [ par ouadzi ] Bonjour &#224; tous, Dans le cadre d'un cr&#233;ation d'un site web pour un g&#238;te fran&#231;ais, je souhaitais int&#233;grer un simple calendrier Besoin d'un conseil (Simple) [ par hitman00 ] Coucou&nbsp;a tous ceux qui lirons cette question Donc j'ai une petite question ,sur un serveur j'ai une base sql serveur et j'aimerais m'y connecter EasyPhp question simple [ par hitman00 ] Coucou .Est il possible de se connecter a une base de donn&#233;e se trouvant sur un serveur distant avec easyPhP ? question simple dur l'action d'un formulaire [ par developvbdebut ] Bonjour tout le monde&nbsp;Je voudrais m&#234;ttre mon script php en&nbsp;dessou du formulaire, j'ignore quoi mettre dans l'action du formulaire.Voici Un p'tit code simple mais je sais pas comment le faire ! [ par N e x u m ] Salut,je voudrais avoir un simple code SANS MYSQL (Si possible) Qui garde le même design dans chaque pageAdmettons on a un design (Un look, un interfa Help me....travaille en php "simple" mais payé.....!! [ par Maniac ] Salut,voila je n'y connais rien du tout en php, mais je dois "simplement" faire un forum pour un client pour qui je developpe son site...Si qq1 savait code simple pour formulaire [ par bernard ] bonsoir à tous, je suis débutant de chez débutant et j'ai besoin d'aide.je voudrais réaliser un programme en php.il s'agit d'un formulaire où le visit PROBLEME SIMPLE [ par g0belin ] sa me repond sa---------------------------ERREUR--------------------Réponse serveur SQL : You have an error in your SQL syntax near '@msn.com, 1234567 requête toute simple! [ par angelique ] Bonjour,Pour la requête suivante : select * from matable where monchamp_valeur = '0.96' il (mysql) me répond que ma requête a été correctement exécuté


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,718 sec (3)

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