Control saisie " date"

je cherche à faire control saisie en java dans un textfield je vais qu'il accepte que des date selement , j'ai 2 champs textfield debut et fin et le 3ème dois afficher le nbre des mois c'est à dire la différence entre date fin et date début en nbre de mois
j'aimerais que vous m'aider et merci d'avance ... je travail avec eclipse

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. bonsoir ,
    voila la fonction que tu doit utiliser :

    function isDateValid(chaineDate) {

    \\ Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
    if (chaineDate != "") return false

    \\ J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
    \\ J'attends bien sûr une date formatée en JJ/MM/AAAA
    var ladate = (chaineDate).split("/")

    \\ Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
    if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false

    \\ Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
    var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]))

    \\ Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
    var annee = unedate.getYear()
    if ((Math.abs(annee)+"").length < 4) annee = annee + 1900

    \\ Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
    return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])))
    }

    ou bien lisez bien ce sujet :
    http://www.asp-php.net/scripts/scripting/datecontrol.php
    tu trouvera certainement ce que tu veut bien expliqué
    1. et pour avoir la difference entre les 2 date de nmp quelle format tu suit cela :

      <?php
      //Definir deux dates
      $d1 = '01/03/2008';
      $d2 = '01/03/2009';

      //appel de fonction
      distance_time($d1,$d2);
      /**
      *Retourner une période, un mois ou bien un jour
      */function distance_time($from,$to){
      $from_d=substr($from,0,2);
      $from_m=substr($from,3,2);
      $from_y=substr($from,6,4);

      $to_d=substr($to,0,2);
      $to_m=substr($to,3,2);
      $to_y=substr($to,6,4);

      $from_time = mktime(0,0,0,$from_m,$from_d,$from_y);
      $to_time = mktime(0,0,0,$to_m,$to_d,$to_y);

      //Mois de début
      $from_day = date('d',$from_time);
      $from_month = date('m',$from_time);
      $from_year = date('Y',$from_time);

      //Date de fin
      $to_day = date('d',$to_time);
      $to_month = date('m',$to_time);
      $to_year = date('Y',$to_time);

      //calculer le nombre de jours en miunte
      $dm = $distance_in_minutes = abs(($to_time - $from_time))/60 + 1440 ;

      //Nombre de jour en minute est > 0
      if($dm > 0 ){
      //période d'un mois
      if($dm >= 40320 && $dm <= 44580){
      //Test si le même mois dans la même année
      if($from_month == $to_month && $from_year == $to_year){
      //nombre de jours de mois
      $nb_jours = get_month($from_year,$from_month);
      if($nb_jours == $to_day){
      echo date( "F" , mktime( 0 , 0 , 0 , $to_month ) ) .' '. $to_year;
      }
      }else{
      echo 'De '.$from_day.'/'.$from_month.'/'.$from_year.' à '.$to_day.'/'.$to_month.'/'.$to_year;
      }
      }
      else if($dm >= 1440 && $dm < 2879){
      echo 'Le '.$from_day.'/'.$from_month.'/'.$from_year;
      }
      else{
      echo 'De '.$from_day.'/'.$from_month.'/'.$from_year.' à '.$to_day.'/'.$to_month.'/'.$to_year;
      }
      }
      }

      /**
      *
      *Récuperer le nombre de jours de mois en question
      */function get_month($year, $month){

      $fev = '28';
      //Vérifier si l'année est bissextiles
      if($month == '02'){
      if($year%4 == 0){
      $fev = '29';
      }else{
      $fev = '28';
      }
      }
      //Enlever le 0 pour les mois < 10
      if($month < 10 ){
      if(strlen($month) == 2){
      $month = substr($month,1,1);
      }
      }
      $mois = array(0,31,$fev,31,30,31,30,31,31,30,31,30,31);

      return $mois[$month];
      }
      ?>