Petit probleme JavaScript ...

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

  1. grosquik
     
    en javascript??????
    la j'en sais rien
    par contre ca ce fait en PHP
    0
    1. celine
       
      et tu pourrais m'en dire plus sur la facon de faire en php ?
      merci
      0
  2. OmEn
     
    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
  3. OmEn
     
    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
  4. OmEn
     
    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
    1. celine
       
      merci je t'en suis tres reconnaissante ;-))

      je l'integre dans mon petit programme et je te dis si ca marche...
      0
    2. celine
       
      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