Petit probleme JavaScript ...

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

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