Date functions #1
BirthRange(), DateFormat(), DayDiff(), RangeDiff()
by toubia95
CSS
/* HELP NOTICES
* http://www.webdevelopersnotes.com/tips/html/10_ways_to_format_time_and_date_using_javascript.php3
* http://www.elated.com/articles/working-with-dates/
*/
/* faire une loop qui additionne le nombre de jours communs, afin de sélectionner comme référence la période qui croise le plus d'autres périodes, mais qui a aussi le plus de jours en commun */
/* TODO :
*/
JavaScript
/*****************************************************************
* FONCTIONS
*****************************************************************/
// fonction BirthRange() calcul auto de la période de naissance
function BirthRange(day,month,year,age) { // jour, mois, année, age sur l'acte
var d1 = new Date(year, month-1, day);
var d2 = new Date(year-1-age, month-1, day+1);
var d3 = new Date(year+1-age, month-1, day-1);
return [d1,d2,d3,age]; // [0] date acte [1] naissance mini [2] naissance maxi [3] age sur acte
}
// formatage d'un objet date en JJ/MM/AAAA pour l'affichage
function DateFormat(date) {
return date.getDate()+"/"+(date.getMonth()+1)+"/"+(date.getYear()+1900);
}
// Nombre de jours entre 2 dates
function DayDiff(first, second) {
return Math.round(Math.abs((second-first)/(1000*60*60*24))+1);
}
// Nombre de jours communs à 2 périodes de naissance (range1 et range2 sont des BirthRange())
function RangeDiff(range1, range2) {
if ((range1[2]<range2[1]) || (range1[1]>range2[2])) {
var days = 0;
} else {
var max = new Date(Math.max(range1[1], range2[1]));
var min = new Date(Math.min(range1[2], range2[2]));
var days = DayDiff(min,max);
}
return days;
}
/*****************************************************************/
var jour1 = 30,
mois1 = 6,
annee1 = 2013,
age1 = 41;
// création des l'objets date
var date1 = new Date(annee1, mois1-1, jour1);
var date2 = new Date(annee1-1-age1, mois1-1, jour1+1);
var date3 = new Date(annee1+1-age1, mois1-1, jour1-1);
// affichage du contenu formaté de date1
var b = $('body');
b.append('<p><strong>Date sur acte = </strong>'+date1.getDate()+"/"+(date1.getMonth()+1)+"/"+(date1.getYear()+1900)+'</p>');
// affichage de l'age1
b.append('<p><strong>Age sur acte = </strong>'+age1+'</p>');
// Date2
b.append('<p><strong>Date2 = </strong>'+date2.getDate()+"/"+(date2.getMonth()+1)+"/"+(date2.getYear()+1900)+'</p>');
//...