Petit probleme JavaScript ...

Fermé
celine - 16 avril 2002 à 11:35
 celine - 17 avril 2002 à 10:56
j'aimerai recuperer le numero de semaine par rapport a une date donnee. Est qu'il existe un moyen simple de l'avoir ?
avec javascript ( je sais j'en demande beaucoup ;-)

4 réponses

en javascript??????
la j'en sais rien
par contre ca ce fait en PHP
0
et tu pourrais m'en dire plus sur la facon de faire en php ?
merci
0
Sois plus précise, disons que la adte est le 22 septembre 1988, au hasard, et tu aimerais savoir combien de semaines ce sont passées depuis cette date ? Il faut dévellopper un algorithme et ca ca prend un bon moment mais si tu le veux vraiment et que tu t'y connais un peu, ca devarit aller; mais moi je peux pas t'aider. Pas tant que j'ai pas une heure devant moi...

@+


OmEn [i2n]
0
function getDifference(y, m, j)
{
var now = new Date();
var date = new Date(y, m, j);
var day = now.getDate() - date.getDate();
var month = (now.getMonth() - date.getMonth()) + 1;
if(month < 1)
{
date.setYear(date.getFullYear() - 1);
month = m;
}
month *= 30;
var year = (now.getFullYear() - date.getFullYear()) * 365;
var total = day + month + year;
return total / 7;
}

Ce doit etre quelque chose comme cela mais je n'ai pas eu le temps de le tester... Je me suis dépeché pour toi alors soit reconnaissante.

@+

OmEn [i2n]
0
Corrections :


function getDifference(y, m, j)
{
var now = new Date();
var date = new Date(y, m, j);
var day = now.getDate() - date.getDate();
if(day < 1)
{
day += 30;
date.setMonth(date.getMonth());
}
var month = (now.getMonth() - date.getMonth()) + 1;
if(month < 1)
{
month += 12
date.setYear(date.getFullYear() - 1);
}
month *= 30;
var year = (now.getFullYear() - date.getFullYear()) * 365;
var total = day + month + year;
return total / 7;
}


OmEn [i2n]
www.i-2n.net
0
merci je t'en suis tres reconnaissante ;-))

je l'integre dans mon petit programme et je te dis si ca marche...
0
et bien en fait ton code m'a inspirer ce qui a donnée:

function num_semaine(a,m,j)
{
var dDate1;
var dDatePrev;
var dDate2;
var dJour2;

var pSem = new Date(a,0,1);
var pJour = pSem.getDay();

if (pJour == 0)
{
pJour = 7;
}

var vInt = (7 - pJour) + 1;
var vPlus = 7 - vInt;

var dDate = new Date(a,m,j); //mois actuelle

//numero du mois actuel
var numMois = dDate.getMonth(); var nbJour = dDate.getDate();

for(i=0 ; i < numMois ; i++)
{
//premier jour du mois ac
dDate1 = new Date(a,m, 1);

//premier jour du mois pc
dDatePrev = new Date(dDate1);
dDatePrev.setMonth(dDate1.getMonth()-1);

//date entiere sur le dernier jour du mois
dDate2 = new Date(dDatePrev);
dDate2.setDate(dDate1.getDate()-1);

//dernier jour du mois actuel
dJour2 = dDate2.getDate();

nbJour += dJour2;
m = m - 1;
}

var nSem = (nbJour + vPlus )/7
nSem = Math.ceil(nSem);

if (nSem == 53)
{
nSem = 1;
}
return nSem;
}

ce qui renvoie 10 si la date en parametre est comprise entre le 4 et 10 avril 2002.
0