semaines

by toubia95

HTML

<div id="tests">

</div>

JavaScript

var display = document.getElementById("tests");
// Date avec l'année correcte
var dateValide = function(jour, mois, an) {
    var resultat = new Date(an, mois - 1, jour);
    resultat.setFullYear(an);
    return resultat;
}
// Nombre de jours complets depuis le début de l'année
var jourDeAnnee = function (j,m,a) {
	return Math.ceil((dateValide(j,m,a) - dateValide(1,1,a)) / (1000 * 60 * 60 * 24)) +1;
}

// Nombre de semaines depuis le début de l'année
var semaineCompleteDeAnnee = function (j,m,a) {
	var jourSemaine = dateValide(1,1,a).getDay();
	var jourSemaineAlt = (jourSemaine == 0) ? 1 : 8-jourSemaine;
	var nombreSemaines = (jourDeAnnee(j,m,a) - jourSemaineAlt) / 7;
	var semainesValides = (nombreSemaines > parseInt(nombreSemaines)) ? parseInt(nombreSemaines) + 1 : parseInt(nombreSemaines);
	return semainesValides;
}

// Nombre de semaines depuis le début du mois
var semaineCompleteDeMois = function (j,m,a) {
	var jourSemaine = dateValide(1,m,a).getDay();
	var jourSemaineAlt = (jourSemaine == 0) ? 1 : 8-jourSemaine;
	var nombreSemaines = (j - jourSemaineAlt) / 7;
	var semainesValides = (nombreSemaines > parseInt(nombreSemaines)) ? parseInt(nombreSemaines) + 1 : parseInt(nombreSemaines);
	return semainesValides;
}

// http://www.very-utile.com/calendrier-2016-premier-semestre.php
display.innerHTML += "* jourDeAnnee : "+jourDeAnnee(29,5,2016)+"e jour<br>";
display.innerHTML += "* semaineCompleteDeAnnee : "+semaineCompleteDeAnnee(29,5,2016)+"e semaine<br>";
display.innerHTML += "* semaineCompleteDeMois : "+semaineCompleteDeMois(29,5,2016)+"e semaine<br>";