Accueil > > > FONCTION CALENDRIER
FONCTION CALENDRIER
Information sur la source
Description
Une fonction qui retourne un calendrier en fonction d'une date passée en paramètre au format suivant 24/11/2003
Source
- Contenu de cal.asp
-
- <%
- 'Fonction qui retourne la date avec le format suivant 20-Fevrier-2003
- '--------------------------------------------------------------------
- Function MediumDate(MaDate)
-
- 'Déclaration des variables
- '-------------------------
- Dim dayPart, monthPart, yearPart, MonthLib
-
- 'Liste des racourssis des mois dans l'ordre
- '------------------------------------------
- MonthLib = array ("","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre")
-
- 'Test de la validité de la date
- '------------------------------
- If IsDate(MaDate) Then
- dayPart = Day(MaDate) 'Je récup le num du jour
- monthPart = MonthLib(Month( MaDate ))'Je récup le num du mois
- yearPart = Year( MaDate )'Je récup le num de l'annee
- MediumDate = dayPart & " " & monthPart & " " & yearPart 'Conténation
- Else
- MediumDate = " "
- End If
-
- End Function
-
- 'Retourne le calendrier du mois courant de la date passée en parametre
- '---------------------------------------------------------------------
- Function Calendrier(DateDuJour)
-
- 'Control sur la validité de la date (la date passée en parametre
- 'doit etre valide sinon on retourne la date d'aujurd'hui
- '---------------------------------------------------------------
- If IsDate(DateDuJour)=true then
- Response.write ""
- Else
- DateDuJour = Date()
- End if
-
- 'Decomposition de la date en variables utiles
- '---------------------------------------------
- jour = day(DateDuJour) 'numero du jour
- jour_semaine = weekdayname(weekday(DateDuJour)) 'nom du jour de la semaine
- NumSemaine = DatePart("ww",DateDuJour) 'numero de la semaine
- mois = month(DateDuJour) 'numero du mois
- an = year(DateDuJour) 'numero de l'année
-
- ' valeur issue de l'addition ou soustraction du mois du jour en cours
- '--------------------------------------------------------------------
- MoisSuivant = DateAdd("m",1,DateDuJour)
- MoisPrecedent = DateAdd("m",-1,DateDuJour)
- AfficheDate = MediumDate(DateDuJour)'/!\Appel a la fonction MediumDate/!
- 'Date du 1er du mois du jour demandé
- '-----------------------------------
- DateDebut = DateSerial(an,mois,1)
-
- 'je fais une boucle sur la première semaine et je recherche le lundi
- '-------------------------------------------------------------------
- for b = DateDebut to DateAdd("d",7,DateDebut)
- 'lorsque je tombe sur le lundi de la premiere semaine je le recupere
- '-------------------------------------------------------------------
- if DatePart("w",b)= 2 then
- LeLundi = b
- End if
-
- next
-
- 'Prémier jour du calendrier
- '--------------------------
- PremierDuCal = DateAdd("d",-7,LeLundi)
-
- 'Date du Prémier jour du calendrier plus 34 jours
- '------------------------------------------------
- Lundi34 = DateAdd("d",34,PremierDuCal)
- 'je rajoute 34jours pour avoir quelques jours du mois suivant
-
- 'Je recupere le numero de semaine pour l'affichage
- '-------------------------------------------------
- NumSemaine = DatePart("ww",DateDuJour)
- NumSemaine = "Semaine n°: " & NumSemaine
-
- 'Boucle générale du tablo calendrier pour générer les cellules
- '-------------------------------------------------------------
- for i = PremierDuCal to Lundi34
-
- 'Si mon compteur est dans les jours du mois démandé j'attribue les bonnes css
- '----------------------------------------------------------------------------
- if (i >= DateDebut and i < DateSerial(an,mois+1,1)) then
- classe = "joursMois"
- 'Je definit quel est le jour selectionné pour le mettre en surbrillance
- '----------------------------------------------------------------------
- if DatePart("d",i)=DatePart("d",DateDuJour) then
- classe = "JourSelec"
- end if
- else
- classe = "autreMois"
- end if
-
- 'Si j'arrive au dimanche je change de ligne, sinon je continue a faire des cellules
- '----------------------------------------------------------------------------------
- if DatePart("w",i)= 1 then
- cellule = cellule&"<td align=""center"" class="""&classe&"""><a href=""cal.asp?date_agenda="&i&""" class="""&classe&""">"&DatePart("d",i)&"</a></td></tr><tr>"
- else
- cellule = cellule&"<td align=""center"" class="""&classe&"""><a href=""cal.asp?date_agenda="&i&""" class="""&classe&""">"&DatePart("d",i)&"</a></td>"
- end if
-
- next
-
- 'Variable de debut de tablo
- '--------------------------
- tablo1 ="<table border=""0"" width=""154"" align=""center"" class=""Calendrier"">"_
- &"<tr><td><a href=""cal.asp?date_agenda="&MoisPrecedent&""" class=""changeMois""><b><<</b></a></td><td colspan=""5"" align=""center"">"&AfficheDate&"</td><td><a href=""cal.asp?date_agenda="&MoisSuivant&""" class=""changeMois""><b>>></b></a></td></tr>"_
- &"<tr><td colspan=""7"" align=""center"">"&NumSemaine&"</td></tr>"_
- &" <tr bgcolor=""#e0e0e0"">"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">L</td>"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">M</td>"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">M</td>"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">J</td>"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">V</td>"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">S</td>"_
- &" <td width=""22"" align=""center"" class=""JoursSemaine"">D</td>"_
- &" </tr>"
-
- 'Variable de fin de tablo
- '------------------------
- FinTablo1 = "</tr></table>"
-
- 'Retour de ma fonction
- '---------------------
- Calendrier = tablo1 & cellule & FinTablo1
-
- End Function
-
- 'Affichage
- '---------
- response.write Calendrier("24/11/2003")
- %>
-
- Contenu de calendrier.css
-
- /* Feuille de style du calendrier */
-
- /*Corps de la page du calendrier*/
- body {
- font-family: Arial, Helvetica, sans-serif; font-size: 11px;
- color:black;background-color: #e5e5e5;
- text-decoration: none;
- }
-
- /*Aspect du tablo du calendrier*/
- .Calendrier {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 11px;
- border: 1px solid #cccccc;
- background-color: #ffffff;
- text-decoration: none;
- }
-
- /*Aspect des jours de la semaine [L, M, M, J, V, S, D]*/
- .JoursSemaine {
- font-family: Arial, Helvetica, sans-serif;
- padding-left: 2px;
- padding-right: 2px;
- padding-top: 2px;
- padding-bottom: 2px;
- color: #ffffff;
- font-size: 10px;
- font-size: x-small;
- font-weight:bold;
- background-color: #c0c0c0;
- text-decoration: none;
- }
-
- /*Lien pour changer vers mois suivant ou précédent*/
- .changeMois {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 13px;
- color: #c0c0c0;
- text-decoration: none;
- }
-
- /*Aspect du jour séléctionné*/
- .JourSelec {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 10px;
- border-color: #C0c0c0;
- background-color: #B661A5;
- color: #ffffff;
- text-decoration: none;
- }
-
- /*Aspect des jours du mois en cours*/
- .joursMois {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 10px;
- color: #000000;
- text-decoration: none;
- }
-
- /*Aspect des jours en dehors du mois en cours*/
- .autreMois {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 10px;
- color: #c0c0c0;
- background-color: #F2F3FA;
- text-decoration: none;
- }
- .Form {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 11px;
- border: 1px solid #CCCCCC;
- }
Contenu de cal.asp
<%
'Fonction qui retourne la date avec le format suivant 20-Fevrier-2003
'--------------------------------------------------------------------
Function MediumDate(MaDate)
'Déclaration des variables
'-------------------------
Dim dayPart, monthPart, yearPart, MonthLib
'Liste des racourssis des mois dans l'ordre
'------------------------------------------
MonthLib = array ("","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre")
'Test de la validité de la date
'------------------------------
If IsDate(MaDate) Then
dayPart = Day(MaDate) 'Je récup le num du jour
monthPart = MonthLib(Month( MaDate ))'Je récup le num du mois
yearPart = Year( MaDate )'Je récup le num de l'annee
MediumDate = dayPart & " " & monthPart & " " & yearPart 'Conténation
Else
MediumDate = " "
End If
End Function
'Retourne le calendrier du mois courant de la date passée en parametre
'---------------------------------------------------------------------
Function Calendrier(DateDuJour)
'Control sur la validité de la date (la date passée en parametre
'doit etre valide sinon on retourne la date d'aujurd'hui
'---------------------------------------------------------------
If IsDate(DateDuJour)=true then
Response.write ""
Else
DateDuJour = Date()
End if
'Decomposition de la date en variables utiles
'---------------------------------------------
jour = day(DateDuJour) 'numero du jour
jour_semaine = weekdayname(weekday(DateDuJour)) 'nom du jour de la semaine
NumSemaine = DatePart("ww",DateDuJour) 'numero de la semaine
mois = month(DateDuJour) 'numero du mois
an = year(DateDuJour) 'numero de l'année
' valeur issue de l'addition ou soustraction du mois du jour en cours
'--------------------------------------------------------------------
MoisSuivant = DateAdd("m",1,DateDuJour)
MoisPrecedent = DateAdd("m",-1,DateDuJour)
AfficheDate = MediumDate(DateDuJour)'/!\Appel a la fonction MediumDate/!
'Date du 1er du mois du jour demandé
'-----------------------------------
DateDebut = DateSerial(an,mois,1)
'je fais une boucle sur la première semaine et je recherche le lundi
'-------------------------------------------------------------------
for b = DateDebut to DateAdd("d",7,DateDebut)
'lorsque je tombe sur le lundi de la premiere semaine je le recupere
'-------------------------------------------------------------------
if DatePart("w",b)= 2 then
LeLundi = b
End if
next
'Prémier jour du calendrier
'--------------------------
PremierDuCal = DateAdd("d",-7,LeLundi)
'Date du Prémier jour du calendrier plus 34 jours
'------------------------------------------------
Lundi34 = DateAdd("d",34,PremierDuCal)
'je rajoute 34jours pour avoir quelques jours du mois suivant
'Je recupere le numero de semaine pour l'affichage
'-------------------------------------------------
NumSemaine = DatePart("ww",DateDuJour)
NumSemaine = "Semaine n°: " & NumSemaine
'Boucle générale du tablo calendrier pour générer les cellules
'-------------------------------------------------------------
for i = PremierDuCal to Lundi34
'Si mon compteur est dans les jours du mois démandé j'attribue les bonnes css
'----------------------------------------------------------------------------
if (i >= DateDebut and i < DateSerial(an,mois+1,1)) then
classe = "joursMois"
'Je definit quel est le jour selectionné pour le mettre en surbrillance
'----------------------------------------------------------------------
if DatePart("d",i)=DatePart("d",DateDuJour) then
classe = "JourSelec"
end if
else
classe = "autreMois"
end if
'Si j'arrive au dimanche je change de ligne, sinon je continue a faire des cellules
'----------------------------------------------------------------------------------
if DatePart("w",i)= 1 then
cellule = cellule&"<td align=""center"" class="""&classe&"""><a href=""cal.asp?date_agenda="&i&""" class="""&classe&""">"&DatePart("d",i)&"</a></td></tr><tr>"
else
cellule = cellule&"<td align=""center"" class="""&classe&"""><a href=""cal.asp?date_agenda="&i&""" class="""&classe&""">"&DatePart("d",i)&"</a></td>"
end if
next
'Variable de debut de tablo
'--------------------------
tablo1 ="<table border=""0"" width=""154"" align=""center"" class=""Calendrier"">"_
&"<tr><td><a href=""cal.asp?date_agenda="&MoisPrecedent&""" class=""changeMois""><b><<</b></a></td><td colspan=""5"" align=""center"">"&AfficheDate&"</td><td><a href=""cal.asp?date_agenda="&MoisSuivant&""" class=""changeMois""><b>>></b></a></td></tr>"_
&"<tr><td colspan=""7"" align=""center"">"&NumSemaine&"</td></tr>"_
&" <tr bgcolor=""#e0e0e0"">"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">L</td>"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">M</td>"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">M</td>"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">J</td>"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">V</td>"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">S</td>"_
&" <td width=""22"" align=""center"" class=""JoursSemaine"">D</td>"_
&" </tr>"
'Variable de fin de tablo
'------------------------
FinTablo1 = "</tr></table>"
'Retour de ma fonction
'---------------------
Calendrier = tablo1 & cellule & FinTablo1
End Function
'Affichage
'---------
response.write Calendrier("24/11/2003")
%>
Contenu de calendrier.css
/* Feuille de style du calendrier */
/*Corps de la page du calendrier*/
body {
font-family: Arial, Helvetica, sans-serif; font-size: 11px;
color:black;background-color: #e5e5e5;
text-decoration: none;
}
/*Aspect du tablo du calendrier*/
.Calendrier {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
border: 1px solid #cccccc;
background-color: #ffffff;
text-decoration: none;
}
/*Aspect des jours de la semaine [L, M, M, J, V, S, D]*/
.JoursSemaine {
font-family: Arial, Helvetica, sans-serif;
padding-left: 2px;
padding-right: 2px;
padding-top: 2px;
padding-bottom: 2px;
color: #ffffff;
font-size: 10px;
font-size: x-small;
font-weight:bold;
background-color: #c0c0c0;
text-decoration: none;
}
/*Lien pour changer vers mois suivant ou précédent*/
.changeMois {
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
color: #c0c0c0;
text-decoration: none;
}
/*Aspect du jour séléctionné*/
.JourSelec {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
border-color: #C0c0c0;
background-color: #B661A5;
color: #ffffff;
text-decoration: none;
}
/*Aspect des jours du mois en cours*/
.joursMois {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
text-decoration: none;
}
/*Aspect des jours en dehors du mois en cours*/
.autreMois {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
color: #c0c0c0;
background-color: #F2F3FA;
text-decoration: none;
}
.Form {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
border: 1px solid #CCCCCC;
}
Conclusion
Elle peut sans aucun doute être optimisée. A savoir qu'elle fait appel a une autre fonction et se sert de css pour l'affichage.
L'appel au fichier css sera a faire dans l'entête de votre page.
Les css servent a faire la différence des jours de début et fin de mois, et bien sur a rendre joli votre calendrier ;)
Sans avoir la pretention de dire que c'est une sorte de contrôle calendar sans .net j'espere qu'elle vous sera utile...
Historique
- 30 novembre 2005 09:26:38 :
- Mise à jour le : Calendrier("29/11/2005") ;)
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Forum
SOSSOS par bathory666
Cliquez pour lire la suite par bathory666
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|