SOS nombre de jours entre deux dates en AS3

lecynique - 27 janv. 2017 à 12:30 - Dernière réponse : jordane45 19201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 décembre 2017 Dernière intervention
- 31 janv. 2017 à 02:46
Bonjour, je voudrais savoir comment calculer le nombre de jours entre deux dates en AS3.
Afficher la suite 

1 réponse

Répondre au sujet
jordane45 19201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 décembre 2017 Dernière intervention - 31 janv. 2017 à 02:46
0
Utile
Bonjour,
Une simple petite recherche ...
https://www.google.fr/search?q=+calculer+le+nombre+de+jours+entre+deux+dates+en+AS3


=> Premier lien obtenu par la recherche ...
http://www.as3-lessentielsouslamain.fr/applications/nb_jours_entre_deux_dates.php
//Données sur le nombre de jour par mois
var mois_31 = "01,03,05,07,08,10,12";
var mois_30 = "04,06,09,11";
var mois_28 = "02";

//Fonction déterminant si une année est bisextile ou non
function bisextile(annee)
{
if( ((annee & 3) == 0) && ((annee % 100 != 0) || (annee % 400 == 0)) )
{
return true;
}
else
{
return false;
}
}

//Fonction ajoutant un zéro au nombre inférieur à 10, afin de rester sur la base d'un nombre à deux chiffres.
function add_zero_dizaine(num)
{
if(num.length == 1)
{
return "0"+num;
}
else
{
return num;
}
}

//Fonction calculant le nombre de jour entre deux dates incluses
function nb_j_between_two_date(date_1:String,date_2:String,inc_dep:Boolean,inc_end:Boolean)
{
var nb_jour:Number = 0;

//Détermine si on inclu ou non les jours de départ et d'arrivée
var dep = 0; if(inc_dep == true) { dep = 1; }
var end = 0; if(inc_end == true) { end = 1; }

//Décomposition de la date de départ
var jj_1 = date_1.substr(0,2);
var mm_1 = date_1.substr(3,2);
var aaaa_1 = date_1.substr(6,4);

//Décomposition de la date d'arrivée
var jj_2 = date_2.substr(0,2);
var mm_2 = date_2.substr(3,2);
var aaaa_2 = date_2.substr(6,4);

//Calcul le nombre de jours restant dans le mois de départ (+dep si on inclus le jour de départ)
var nb_jj_dep:Number;
if(mois_31.indexOf(mm_1) != -1) { nb_jj_dep = 31 - parseInt(jj_1) + dep; } //mois à 31 jours
if(mois_30.indexOf(mm_1) != -1) { nb_jj_dep = 30 - parseInt(jj_1) + dep; } //mois à 30 jours
if(mois_28.indexOf(mm_1) != -1) { nb_jj_dep = 28 - parseInt(jj_1) + dep; } //mois à 28 jours
if(mois_28.indexOf(mm_1) != -1 && bisextile(aaaa_1) == true) { nb_jj_dep = 29 - parseInt(jj_1) + dep; } //mois à 29 jours
nb_jour = nb_jour + nb_jj_dep;

//Calcul le nombre de jour dans les autres mois
var nb_mois:Number = parseInt(mm_2) - parseInt(mm_1) - 1 + (12 * (aaaa_2 - aaaa_1)); //Nombre de mois à calculer
var next_mois = parseInt(mm_1) + 1; //Premier mois à calculer
var nb_jj:Number = 0; //Nombre de jour dans le mois
var annee_plus:Number = 0; //Nombre d'année en plus par rapport à l'année de départ
for(var i=0; i<nb_mois; i++)
{
//Détermine le numéro du mois à traiter
var num_mois = add_zero_dizaine(String(next_mois+i));

//Détermine le numéro du année à traiter
var mois13 = parseInt(num_mois)%12; //Test si on passe à une nouvelle année (si num_mois = 13)
if(mois13 == 1) //Si oui...
{
annee_plus++; //...on déclare +1 année ajouté
}

//Re-calcul le numéro du mois suivant si une ou plusieurs années sont passées
if(annee_plus >= 1)
{
num_mois = add_zero_dizaine(String(next_mois+i - (12 * annee_plus))); //On retire 12 mois par année passée
}

if(mois_31.indexOf(num_mois) != -1) { nb_jj = nb_jj + 31; } //+ 31 jours
if(mois_30.indexOf(num_mois) != -1) { nb_jj = nb_jj + 30; } //+ 30 jours
if(mois_28.indexOf(num_mois) != -1) { nb_jj = nb_jj + 28; } //+ 28 jours
if(mois_28.indexOf(num_mois) != -1 && bisextile(parseInt(aaaa_1)+annee_plus) == true) { nb_jj = nb_jj + 29; } //mois à 29 jours
}
nb_jour = nb_jour + nb_jj;

//Calcul le nombre de jours dans le mois d'arrivée (+end si on inclus le jour d'arrivée)
var nb_jj_end:Number;
if(mois_31.indexOf(mm_2) != -1) { nb_jj_end = 31 - parseInt(jj_2) + end; } //mois à 31 jours
if(mois_30.indexOf(mm_2) != -1) { nb_jj_end = 30 - parseInt(jj_2) + end; } //mois à 30 jours
if(mois_28.indexOf(mm_2) != -1) { nb_jj_end = 28 - parseInt(jj_2) + end; } //mois à 28 jours
if(mois_28.indexOf(mm_2) != -1 && bisextile(aaaa_2) == true) { nb_jj_end = 29 - parseInt(jj_2) + 1; } //mois à 29 jours
nb_jour = nb_jour + nb_jj_end;

return nb_jour;
}

//Exemple : entre le 22 Avril 2011 inclu et le 18 Octobre 2011 exclu
nb_j_between_two_date("22-04-2011","18-10-2011",true,false); // = 175 jours

Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.