begin process at 2012 05 27 22:01:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALENDRIER SIMPLE

CALENDRIER SIMPLE


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Classé sous :calendrier, date, agenda Niveau :Débutant Date de création :31/12/2010 Date de mise à jour :26/02/2011 12:51:32 Vu :5 833

Auteur : manuche

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

 Description

Calendrier de base en 100 lignes max,sous forme de fonction,  permettant le retour d'une date choisie vers un autre fichier.
merci à tchconst.

Source

  • <html>
  • <head>
  • <title>calendrier</title>
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • <?php
  • function calendrier($choixmois,$choixannee,$nomfichier){?>
  • <style type="text/css">
  • body {font-family:"Andale Mono", Arial, Verdana, sans-serif;font-size: 11px ;margin:0 0 0 0;padding:0 0 0 0;}
  • a {color:#822;text-decoration:none ;}
  • #table_calendrier{font-size:11px;text-align:center;border-left: solid 5px #666;border-top: solid 5px #666;border-right:solid 5px #ccc; border-bottom:solid 5px #ccc;background-color:#ddd;}
  • #table_calendrier td{border: 1px solid #586;height:18px;}
  • .textegras14{font-size: 14px ;font-weight:bold;color:#006633;}
  • .numsem{background-color:#88a;height:20px}
  • .fond1{background-color:#ee5;}
  • .fond2{background-color:#fa5;}
  • .fond3{background-color:#afa;}
  • .choixjour1{background-color:#5bf;}
  • .choixjour2{background-color:#fff;}
  • </style><?php
  • if($choixmois==Null) $choixmois=date('n', mktime(0,0,0,date('n')+1,0,0));
  • if($choixannee==Null)$choixannee=date('Y', mktime(0,0,0,0,0, date('Y')+1));
  • $nbrejourmois = date('t', mktime(0,0,0,$choixmois,1, $choixannee));
  • $premierjour= date('w', mktime(0,0,0,$choixmois,1, $choixannee));
  • $jourcourant=date('j', mktime(0,0,0,0,date('j'),0));
  • $moiscourant= date('m', mktime(0,0,0,date('m')+1,0,0));
  • $anneecourante= date('Y', mktime(0,0,0,0,0, date('Y')+1));
  • $mois = Array ( "", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre" );
  • $i=$choixmois;
  • if ($premierjour==0) $premierjour=7;
  • if ($i<1) $i=12;
  • if ($i >12) $i=1;?>
  • <table id="table_calendrier">
  • <tr>
  • <td colspan="8" class="fond1" >
  • <a href="<?php echo $nomfichier ?>?choixannee=<?php echo $choixannee-1 ?>&choixmois=<?php echo $choixmois ?>"><<&nbsp;&nbsp; </a>
  • <span class="textegras14"><?php echo $choixannee ;?></span>
  • <a href="<?php echo $nomfichier ?>?choixannee=<?php echo $choixannee+1 ?>&choixmois=<?php echo $choixmois ?>">&nbsp;&nbsp;>> </a>
  • </td>
  • </tr>
  • <tr>
  • <td colspan="8" class="fond2" >
  • <a href="<?php echo $nomfichier ?>?choixmois=<?php echo $i-1 ?>&choixannee=<?php echo $choixannee ?>"><<&nbsp;&nbsp; </a>
  • <span class="textegras14"><?php echo $mois[$i] ;?></span>
  • <a href="<?php echo $nomfichier ?>?choixmois=<?php echo $i+1?>&choixannee=<?php echo $choixannee ?>">&nbsp;&nbsp;>> </a>
  • </td>
  • </tr>
  • <tr class="fond3" ><td>N° S</td><td>Lu</td><td>Ma</td><td>Mer</td><td>Jeu</td><td>Ven</td><td>Sam</td><td>Dim</td></tr><?php
  • $varjour=1;
  • $jour_increment=Null;
  • for($s=0;$s<6;$s++){?>
  • <tr><?php
  • for($j=1;$j<8;$j++){
  • if($varjour>=$premierjour){
  • $jour_increment += 1 ;
  • if($jour_increment<10)$jour_increment='0'.$jour_increment;
  • }
  • if($j<2 ){
  • ($jour_increment<=$nbrejourmois)?$numsemaine= date('W', mktime(0,0,0,$choixmois,$jour_increment, $choixannee)):$numsemaine='';//n° semaine?>
  • <td class="numsem"><?php echo $numsemaine ?> </td><?php
  • }
  • if($jour_increment<=$nbrejourmois) {
  • if(strlen($choixmois)==1) $choixmois='0'.$choixmois;
  • $returndate=$jour_increment.'/'.$choixmois.'/'.$choixannee;
  • ($jour_increment==$jourcourant && $choixmois ==$moiscourant && $choixannee==$anneecourante )? $class=' class="choixjour1"': $class=' class="choixjour2"';?>
  • <td <?php echo $class ?> ><a href="<?php echo $nomfichier ?>?returndate=<?php echo $returndate ?>&choixmois=<?php echo $i ?>&choixannee=<?php echo $choixannee ?>"><?php echo $jour_increment ?> </a></td><?php
  • }else{
  • $j=8;
  • }
  • $varjour=$varjour+1;
  • }?>
  • </tr> <?php
  • }?>
  • </tr>
  • <tr><td colspan="8">calendrier créé par M.LAVEAU</td></tr>
  • </table><?php
  • }?>
  • </head>
  • <body><?php
  • (isset($_GET['choixmois']))?$choixmois =$_GET['choixmois']:$choixmois=Null;
  • (isset($_GET['choixannee']))?$choixannee =$_GET['choixannee']:$choixannee=Null;
  • (isset($_GET['returndate']))?$returndate =$_GET['returndate']:$returndate=Null;
  • calendrier($choixmois,$choixannee,$_SERVER['PHP_SELF'] );
  • echo $returndate;?>
  • </body>
  • </html>
<html>
<head>
<title>calendrier</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php 
function calendrier($choixmois,$choixannee,$nomfichier){?>
	 <style type="text/css">
		body {font-family:"Andale Mono", Arial, Verdana, sans-serif;font-size: 11px ;margin:0 0 0 0;padding:0 0 0 0;}
		a {color:#822;text-decoration:none ;}
		#table_calendrier{font-size:11px;text-align:center;border-left: solid 5px #666;border-top: solid 5px #666;border-right:solid 5px #ccc; border-bottom:solid 5px #ccc;background-color:#ddd;}
		#table_calendrier td{border: 1px solid #586;height:18px;}
		.textegras14{font-size: 14px ;font-weight:bold;color:#006633;}
		.numsem{background-color:#88a;height:20px}
		.fond1{background-color:#ee5;}
		.fond2{background-color:#fa5;}
		.fond3{background-color:#afa;}
		.choixjour1{background-color:#5bf;}
		.choixjour2{background-color:#fff;}
	</style><?php
	if($choixmois==Null) $choixmois=date('n', mktime(0,0,0,date('n')+1,0,0));
	if($choixannee==Null)$choixannee=date('Y', mktime(0,0,0,0,0, date('Y')+1));
	$nbrejourmois = date('t', mktime(0,0,0,$choixmois,1, $choixannee));
	$premierjour= date('w', mktime(0,0,0,$choixmois,1, $choixannee));
	$jourcourant=date('j', mktime(0,0,0,0,date('j'),0));
	$moiscourant= date('m', mktime(0,0,0,date('m')+1,0,0));
	$anneecourante= date('Y', mktime(0,0,0,0,0, date('Y')+1));
	$mois = Array ( "", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre" );
	$i=$choixmois;
	if ($premierjour==0) $premierjour=7;
	if ($i<1) $i=12;
	if ($i >12) $i=1;?>
	<table id="table_calendrier">
		<tr>
			<td colspan="8" class="fond1" >
				<a href="<?php echo $nomfichier ?>?choixannee=<?php echo $choixannee-1 ?>&choixmois=<?php echo $choixmois ?>"><<&nbsp;&nbsp; </a>
				<span class="textegras14"><?php echo $choixannee ;?></span>
				<a href="<?php echo $nomfichier ?>?choixannee=<?php echo $choixannee+1 ?>&choixmois=<?php echo $choixmois ?>">&nbsp;&nbsp;>> </a>
			</td>
		</tr>
		<tr>
			<td colspan="8" class="fond2" >
				<a href="<?php echo $nomfichier ?>?choixmois=<?php echo $i-1 ?>&choixannee=<?php echo $choixannee ?>"><<&nbsp;&nbsp; </a>
				<span class="textegras14"><?php echo $mois[$i] ;?></span>
				<a href="<?php echo $nomfichier ?>?choixmois=<?php echo  $i+1?>&choixannee=<?php echo $choixannee ?>">&nbsp;&nbsp;>> </a>
			</td>
		</tr>	   
		<tr class="fond3" ><td>N° S</td><td>Lu</td><td>Ma</td><td>Mer</td><td>Jeu</td><td>Ven</td><td>Sam</td><td>Dim</td></tr><?php 
		$varjour=1;
		$jour_increment=Null;
		for($s=0;$s<6;$s++){?>
			<tr><?php
				for($j=1;$j<8;$j++){
					if($varjour>=$premierjour){
						$jour_increment += 1 ;
						if($jour_increment<10)$jour_increment='0'.$jour_increment;
					}
					if($j<2 ){
						($jour_increment<=$nbrejourmois)?$numsemaine= date('W', mktime(0,0,0,$choixmois,$jour_increment, $choixannee)):$numsemaine='';//n° semaine?>
						 <td  class="numsem"><?php echo $numsemaine ?> </td><?php
					}
					if($jour_increment<=$nbrejourmois) {
						if(strlen($choixmois)==1) $choixmois='0'.$choixmois;
						$returndate=$jour_increment.'/'.$choixmois.'/'.$choixannee;
						($jour_increment==$jourcourant && $choixmois ==$moiscourant && $choixannee==$anneecourante )? $class=' class="choixjour1"': $class=' class="choixjour2"';?>
						<td <?php echo $class ?> ><a href="<?php echo $nomfichier ?>?returndate=<?php echo $returndate ?>&choixmois=<?php echo $i ?>&choixannee=<?php echo $choixannee ?>"><?php echo $jour_increment ?> </a></td><?php
					}else{
						$j=8;
					} 
					$varjour=$varjour+1;
				}?>
			</tr> <?php
		}?>
		</tr>
		<tr><td colspan="8">calendrier créé par M.LAVEAU</td></tr>
	</table><?php 
}?>
</head>
<body><?php 
	(isset($_GET['choixmois']))?$choixmois =$_GET['choixmois']:$choixmois=Null;
	(isset($_GET['choixannee']))?$choixannee =$_GET['choixannee']:$choixannee=Null;
	(isset($_GET['returndate']))?$returndate =$_GET['returndate']:$returndate=Null;
	calendrier($choixmois,$choixannee,$_SERVER['PHP_SELF'] );
	echo $returndate;?>
</body>
</html>



 Historique

26 février 2011 12:51:32 :
Simplification du code initial et mise en 'fonction' du calendrier

 Sources du même auteur

GESTION DE COULEUR

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

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
Source avec Zip Source avec une capture CALENDRIER + AGENDA TRÈS SIMPLE (GERER LES JOURS FÉRIÉS ET L... par mondherclubiste
Source avec Zip Source avec une capture CALENDRIER par pichpoich
CALCUL SIMPLE DU NOMBRE DE JOURS OUVRÉS ENTRE DEUX DATES (JO... par Astemius
Source avec Zip AVANCER OU REMONTER LE TEMP par hrz

Commentaires et avis

Commentaire de hornetbzz le 03/01/2011 02:56:20

hum "initié", ça me parait un brin optimiste.

- quelques critiques à la volée :

1) codes css, html et php mélangés, un vrai bronx => séparer les codes, ça ne fera pas plus de lignes.

2) css pas compatible tous navigateurs, dommage pour un calendrier dans la section "initiés" => exemple du (a:hover..) qui ne marche pas sous IE6 à mon avis (pas testé)

3) conditions ternaires:
soit pas utilisées alors que ça vaudrait le coup de se poser la question sur ces lignes
if($premierjour==1)$coef=0; ...
ou sur celles ci
if(isset($_REQUEST['choixmois']))$choixmois =$_REQUEST['choixmois'];

soit "bizarrement" utilisées, détournées de leur logique:  ($jour_increment<=$nbrejourmois)?$numsemaine= date('W', mktime(0,0,0,$choixmois,$jour_increment, $choixannee)):$numsemaine='';

4) Variable Globale $_REQUEST: cette superglobale serait utile si tu avais besoin de modifier indépendemment $_GET et $POST. Mais ici, je ne vois pas l'intéret d'utiliser cette variable, surtout avec aussi peu de contrôle, alors que ton formulaire utilise la méthode POST donc tu pourrais restreindre la recup des données avec $_POST sans ouvrir un trou béant aux $_GET que tu n'utilises pas.

5) Créer des tableau de mois à la mano, c'est juste pas beau. Un truc du genre serait plus sympa, si toutefois il n'y avait pas une méthode encore plus directe, ce qui ne me surprendrait pas : for ($i = 0; $i < 12; $i++) { $month[] = mktime(0,0,0,(date('m') + $i),1); }

Bon, meilleurs voeux, au moins tu as quelques bonnes résolutions à suivre  :-)

Commentaire de tatactic le 03/01/2011 15:25:01

Peut-être aussi juste à penser à valider la source obtenue dans ton browser...
84 Errors, 152 warning(s)
http://validator.w3.org
Bonne continuation.
Nico

Commentaire de moimoi45 le 03/01/2011 16:53:56

Bizarre pas tout vu mais fait des essais sécurité c pas le top mais bon ??? Variable ???? navigateur'S qui veut po Merci mais si tu suis les conseils de hornetbzz  normalement cela devrait le faire  Bonne continuation

Commentaire de manuche le 04/01/2011 19:41:00

Ben !! qu'est ce que cela doit être,  expert !!
Il est sur que beaucoup de chose m'échappent encore !!
En tout cas, merci des conseils que je vais étudier précieusement!!
Bonne année à tous et toutes

Un débutant initié !!

Commentaire de 007Julien le 08/02/2011 01:23:16

Un détail mais $coef=($premierjour+6)%7; éviterait les lignes 63 à 69 qui ne constituent pas vraiment de la programmation...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Je trouve pas l'erreur sur mon script [ par Akash ] Salut à tous j'espère que vous pourrez m'aider. Voila le problème :Pour mon script de calendrier evenementiel j'ai besoin d'afficher des évènements pa problemes de lien dans un calendrier [ par hysteria74000 ] qulequ'un peut me dire pourquoi mes liens, dans mon calendrier, SUIVANT et PRECEDENT ne fonctionnent pas.Voici le code php::$lien=date("Y+m+d", mktime tri des dates [ par rukiyes ] bonjour,je doi faire un agenda, et pour l'instant dans ma page,j'ai la date d'aujourd'hui et la liste des dates que je recup&#232;re dans un champs d' requette si posssible [ par youyou26 ] bonjour tt le monde je suis un peu despérer j'ai petit calendrier et un fichier ¤.gif et chaque image et enregistré avec une date ce quie j'ai envie c Gestion de date dans une BDD [ par switsh ] Bonjour, Je suis actuellement en train de cr&#233;er un calendrier rectiligne pour des r&#233;servations de chambres. Pour le moment j'ai le calendr Calendrier amélioré??? [ par Monico9385 ] Bonjour, je viens vous voir car j'ai un probl&#232;me et je sais pas du tout comment le r&#233;soudre. Je voudrai r&#233;cup&#233;rer la date de tou Calendrier pour gallerie photo [ par gandalf76fr ] Bonjour, ayant ma famille distante, je cr&#233;e une gallerie photos pour qu'il puisse voir ma fille grandire.Jusque la je l'ai fait sous photoweb gal Exporter les données d'un agenda/calendrier outlook dans un format type xml [ par sayann ] Les dates avec MySQL [ par ImmortalPC ] Salut,je deviens fou avec mon calendrier J' ai une date de commencement et une date de finrespectivement : date_start et date_endLeur type : datetime communication entre deux page [ par mouness ] boujour j'ai un probleme et ce serait super si quelqu'un pouvai m'aider je m'explique. J'ai crée 2 frame l'un d'entre elle affiche un calendrier et l'


Nos sponsors


Sondage...

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

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