Control saisie " date"
sabri22
Messages postés
21
Statut
Membre
-
fidraman Messages postés 196 Statut Membre -
fidraman Messages postés 196 Statut Membre -
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
j'aimerais que vous m'aider et merci d'avance ... je travail avec eclipse
A voir également:
- Control saisie " date"
- Fan control - Télécharger - Optimisation
- Saisie gestuelle iphone - Guide
- Adb app control - Guide
- Control center 4 - Télécharger - Divers Utilitaires
- Copytrans control center - Télécharger - Divers Utilitaires
2 réponses
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é
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é
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];
}
?>
<?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];
}
?>