par
zazadec » 19 févr. 2009, 15:52
Cette fonction permet de calculer le nombre de dimanche, lundi, mardi ... dans un mois.
Les variables sont le 'nom du jour de la semaine' (sous forme de numéro 0:dimanche 1:Lundi ...), le mois et l'année :
Code : Tout sélectionner
function GetNbrMemeJour(j_, m_, a_){
var RefMois;
var D_Date = new Date();
var D_Jour = D_Date.getDay();
var D_Mois = D_Date.getMonth();
var D_Annee = D_Date.getFullYear();
var NbrJour = 0;
//-- Init des Valeurs
if( j_)
D_Date.setDate(1); // on met la date au 1st
if( m_!=null)
D_Date.setMonth(m_); // on place le mois
if( a_!=null)
D_Date.setYear(a_); // on place l'année
RefMois = D_Date.getMonth(); // le mois de réfèrence
//-- On demande à JavaScript de faire le Boulot --//
for( i=1; i <32 ;i++){ // Nbr Jour Max 31
D_Date.setDate(i);
D_Mois = D_Date.getMonth(); // on récupère le mois
D_NumJour = D_Date.getDay(); // la position du jour
if( RefMois != D_Mois){ // On change de Mois
break;
}
if( D_NumJour == j_)
NbrJour++;
}
return( NbrJour);
}
Attention : Un bug existe, il faut enlever un mois à la variable, pour tomber sur le bon calcul (pour le calcul du mois de 'mars', mettre '2'). Impossible avec mes connaissances de le corriger.
Est ce que quelqu'un peux transformer cette fonction JS en du bon PHP, comme on l'adore.
Merci d'avance à tous ceux qui vont y penser, même si c'est sans résultat.
Cette fonction permet de calculer le nombre de dimanche, lundi, mardi ... dans un mois.
Les variables sont le 'nom du jour de la semaine' (sous forme de numéro 0:dimanche 1:Lundi ...), le mois et l'année :
[code]function GetNbrMemeJour(j_, m_, a_){
var RefMois;
var D_Date = new Date();
var D_Jour = D_Date.getDay();
var D_Mois = D_Date.getMonth();
var D_Annee = D_Date.getFullYear();
var NbrJour = 0;
//-- Init des Valeurs
if( j_)
D_Date.setDate(1); // on met la date au 1st
if( m_!=null)
D_Date.setMonth(m_); // on place le mois
if( a_!=null)
D_Date.setYear(a_); // on place l'année
RefMois = D_Date.getMonth(); // le mois de réfèrence
//-- On demande à JavaScript de faire le Boulot --//
for( i=1; i <32 ;i++){ // Nbr Jour Max 31
D_Date.setDate(i);
D_Mois = D_Date.getMonth(); // on récupère le mois
D_NumJour = D_Date.getDay(); // la position du jour
if( RefMois != D_Mois){ // On change de Mois
break;
}
if( D_NumJour == j_)
NbrJour++;
}
return( NbrJour);
}[/code]
[i][color=red]Attention [/color]: Un bug existe, il faut enlever un mois à la variable, pour tomber sur le bon calcul (pour le calcul du mois de 'mars', mettre '2'). Impossible avec mes connaissances de le corriger.[/i]
[size=150][b][color=indigo]Est ce que quelqu'un peux transformer cette fonction JS en du bon PHP, comme on l'adore.[/color][/b][/size]
Merci d'avance à tous ceux qui vont y penser, même si c'est sans résultat.