Accueil > > > CALCUL DU NUMÉRO DE LA SEMAINE
CALCUL DU NUMÉRO DE LA SEMAINE
Information sur la source
Description
Voilà un petit code qui permet de calculer le numéro de la semaine pour une date donnée.
Source
- <html><head>
- <script langage="JavaScript">
- document.writeln(new Date() + " --> " + getWeek ( new Date() ));
- document.writeln("<BR>");
- document.writeln("01/01/2005 --> " + getWeek ( new Date(2005, 0, 1) )) ;
- document.writeln("<BR>");
- document.writeln("01/01/2004 --> " + getWeek ( new Date(2004, 0, 1) )) ;
- document.writeln("<BR>");
- document.writeln("31/12/2004 --> " + getWeek ( new Date(2004, 11, 31) )) ;
- document.writeln("<BR>");
- document.writeln("01/01/2007 --> " + getWeek ( new Date(2007, 0, 1) )) ;
- document.writeln("<BR>");
- document.writeln("08/01/2007 --> " + getWeek ( new Date(2007, 0, 8) )) ;
- document.writeln("<BR>");
- document.writeln("10/01/2005 --> " + getWeek ( new Date(2005, 0, 10) )) ;
- document.writeln("<BR>");
- document.writeln("29/12/2003 --> " + getWeek ( new Date(2003, 11, 29) )) ;
-
- function getWeek ( tDate ) {
- var res = '' ;
-
- //de l'année courante
- var janv1 = new Date ( tDate.getYear(), 0, 1 ) ; //1 janvier
- var dec31 = new Date ( tDate.getYear(), 11, 31 ) ; //31 decembre
- var janv1Num = janv1.getDay() == 0 ? 7 : janv1.getDay() ; //numero du 1 janvier
- var premSem = 7 - janv1Num > 2 ? true : false ; //si la première semaine compte ou pas
- var premLundi = 9 - janv1Num ; //date du premier lundi suivant le 1 janvier
- //nb jour separant la date du 1 janvier
- var nbJour = parseInt((tDate - janv1) / (60 * 60 * 24 * 1000) + 1, 10) ;
- //nb jour dans l'annee
- var nbJourTot = parseInt((dec31 - janv1) / (60 * 60 * 24 * 1000) + 1, 10) ;
- //nombre de semaines dans l'annee
- var nbSem ;
- if (janv1Num == 4 || (janv1Num == 3 && nbJourTot == 366)) { nbSem = 53 ; }
- else { nbSem = 52 ; }
-
- //de l'année précédente
- var janv1Prev = new Date ( tDate.getYear()-1, 0, 1 ) ; //1 janvier
- var dec31Prev = new Date ( tDate.getYear()-1, 11, 31 ) ; //31 decembre
- var janv1NumPrev = janv1Prev.getDay() == 0 ? 7 : janv1Prev.getDay() ; //numero du 1 janvier
- //nb jour dans l'annee
- var nbJourTotPrev = parseInt((dec31Prev - janv1Prev) / (60 * 60 * 24 * 1000) + 1, 10) ;
- //nombre de semaines dans l'annee
- var nbSemPrev ;
- if (janv1NumPrev == 4 || (janv1NumPrev == 3 && nbJourTotPrev == 366)) { nbSemPrev = 53 ; }
- else { nbSemPrev = 52 ; }
-
- //calcul de la semaine
- var nbSemCompl = parseInt((nbJour - premLundi) / 7 , 10) ;
-
- var week = premSem + nbSemCompl + 1 ;
-
- if (nbJour < premLundi) {
- if (premSem) {
- res = '01/' + tDate.getYear() ;
- }
- else {
- res = nbSemPrev + '/' + (tDate.getYear()-1) ;
- }
- }
- else {
- if ((week > 52) && (week > nbSem)) {
- res = '01/' + (tDate.getYear()+1) ;
- }
- else {
- var tmp = '0' + week ;
- res = tmp.substring(tmp.length-2, tmp.length) + '/' + tDate.getYear() ;
- }
- }
-
- return (res) ;
- }
-
- </script>
- </head></html>
<html><head>
<script langage="JavaScript">
document.writeln(new Date() + " --> " + getWeek ( new Date() ));
document.writeln("<BR>");
document.writeln("01/01/2005 --> " + getWeek ( new Date(2005, 0, 1) )) ;
document.writeln("<BR>");
document.writeln("01/01/2004 --> " + getWeek ( new Date(2004, 0, 1) )) ;
document.writeln("<BR>");
document.writeln("31/12/2004 --> " + getWeek ( new Date(2004, 11, 31) )) ;
document.writeln("<BR>");
document.writeln("01/01/2007 --> " + getWeek ( new Date(2007, 0, 1) )) ;
document.writeln("<BR>");
document.writeln("08/01/2007 --> " + getWeek ( new Date(2007, 0, 8) )) ;
document.writeln("<BR>");
document.writeln("10/01/2005 --> " + getWeek ( new Date(2005, 0, 10) )) ;
document.writeln("<BR>");
document.writeln("29/12/2003 --> " + getWeek ( new Date(2003, 11, 29) )) ;
function getWeek ( tDate ) {
var res = '' ;
//de l'année courante
var janv1 = new Date ( tDate.getYear(), 0, 1 ) ; //1 janvier
var dec31 = new Date ( tDate.getYear(), 11, 31 ) ; //31 decembre
var janv1Num = janv1.getDay() == 0 ? 7 : janv1.getDay() ; //numero du 1 janvier
var premSem = 7 - janv1Num > 2 ? true : false ; //si la première semaine compte ou pas
var premLundi = 9 - janv1Num ; //date du premier lundi suivant le 1 janvier
//nb jour separant la date du 1 janvier
var nbJour = parseInt((tDate - janv1) / (60 * 60 * 24 * 1000) + 1, 10) ;
//nb jour dans l'annee
var nbJourTot = parseInt((dec31 - janv1) / (60 * 60 * 24 * 1000) + 1, 10) ;
//nombre de semaines dans l'annee
var nbSem ;
if (janv1Num == 4 || (janv1Num == 3 && nbJourTot == 366)) { nbSem = 53 ; }
else { nbSem = 52 ; }
//de l'année précédente
var janv1Prev = new Date ( tDate.getYear()-1, 0, 1 ) ; //1 janvier
var dec31Prev = new Date ( tDate.getYear()-1, 11, 31 ) ; //31 decembre
var janv1NumPrev = janv1Prev.getDay() == 0 ? 7 : janv1Prev.getDay() ; //numero du 1 janvier
//nb jour dans l'annee
var nbJourTotPrev = parseInt((dec31Prev - janv1Prev) / (60 * 60 * 24 * 1000) + 1, 10) ;
//nombre de semaines dans l'annee
var nbSemPrev ;
if (janv1NumPrev == 4 || (janv1NumPrev == 3 && nbJourTotPrev == 366)) { nbSemPrev = 53 ; }
else { nbSemPrev = 52 ; }
//calcul de la semaine
var nbSemCompl = parseInt((nbJour - premLundi) / 7 , 10) ;
var week = premSem + nbSemCompl + 1 ;
if (nbJour < premLundi) {
if (premSem) {
res = '01/' + tDate.getYear() ;
}
else {
res = nbSemPrev + '/' + (tDate.getYear()-1) ;
}
}
else {
if ((week > 52) && (week > nbSem)) {
res = '01/' + (tDate.getYear()+1) ;
}
else {
var tmp = '0' + week ;
res = tmp.substring(tmp.length-2, tmp.length) + '/' + tDate.getYear() ;
}
}
return (res) ;
}
</script>
</head></html>
Conclusion
S'il y a des bugs n'hesitez pas
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
trouver une date à partir du numéro de semaine [ par khmerpower ]
je cherche à faire un script où à partir du numéro de semaine je peux sortir la date de début de semaine et la date de fin de semaine.Je sais que c'es
un script dans une page html pour un calcul simple avec saisie de l'utilisateur [ par lemasque49 ]
si quelqu'un peut me dire comment faire un javascript qui me permet d'avoir cinq fenêtre dans lesquelles j'aurais 4 variables et un résultat et dans l
Comment faire ce script ? A l'AIDE [ par lemasque49 ]
J'ai fait une page sur laquelle j'ai des champs de saisies et des calculs intermédiaires pour afficher un résultat (calcul simple)Je voudrais y introd
CodeS-SourceS de la semaine [ par MaitreJack ]
Je souhaite transmettre une demande de correctionà Nix, le Webmestre de CodeS-SourceS.Bonjour,Le CodeS-SourceS de la semaine que je reçois contientdes
Moteur de calcul sur un formulaire [ par twentyseven ]
Bonjour,Je souhaite effectuer des claculs (+, *, % ...) sur des formulaires représentant des devis, factures...Le nombre de calculs étant important, j
validité d'un numéro siren [ par bob2bob ]
Slt.Je cherche à contrôler la validité d'un numéro siren dans un formulaire. J'ai trouvé ce script (ci-dessous), mais il semble rejetter TOUS les numé
Comment adapter la photo du mois en photo de la semaine [ par arnaud d ]
Hello,Tout d'adord merci pour tout ... !!!P'tite question :J'ai mis en place le script permettant d'avoir une photo différente chaque mois, ici :http:
calcul champs texte [ par alahyaneali ]
BonjourJ'ai des champs texte dont les nom sont;txtQte1,txtQte2,txtQte3,txtQte4...txtQteX;pareil pourtxtPrix1,txtPrix2,txtPrix3,txtPrix4...txtPrixX;je
calcul de prix dans un formulaire multiple !! [ par pumbaa ]
Bonjour a tous <P c
Recharger une page automatiquement en prenant en compte le paramètres modifiés! [ par lambrosx ]
Bonjour à tous, je débute totallement en JAVASCRIPT. Je fais un petit bout de programme en HTML et PHP, il permet de lister des palettes en
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|