Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2011, 09h34   #1
Invité de passage
 
Inscription : août 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 8
Points : 1
Points : 1
Par défaut calculer la date d'une fin d'une période

Bonjour,
je cherche à calculer la date de la fin d'une période d'un an à partir d'une date.
Soit par exemple pour le 4/10/2011-> le 3/10/2012.
J'ai un bout de script mais, ll ne marche pas pour toutes les dates, style 1/9/2011, 1/10/2011, ou si je saisie une date en 2012.
merci pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
 
function dtfinPeriode(strDate){	  
	    day = strDate.substring(0,2);
		month = strDate.substring(3,5);		
		d = new Date();	
		d.setDate(day);
		d.setMonth(month);		
		d.setFullYear(d.getFullYear()+1); 
		d.setDate((d.getDate()-1));	
		return new Date(d.getFullYear(),d.getMonth()-1,d.getDate());;  
	  }
lecimerien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 09h44   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
parce qu'il faut commencer par l'année, puis le mois et terminer par le jour !
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 09h52   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Tu peux t'inspirer de la Comment déterminer la date d'il y a 6 mois ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 12h06   #4
Invité de passage
 
Inscription : août 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 8
Points : 1
Points : 1
merci, mais j'ai toujours un problème pour obtenir le jour précédent notamment, si la date saisie est le 1/9/2011 j'obtiens le 30/08/2012 et non pas le 31/08/2012.
lecimerien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 12h14   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par lecimerien
merci, mais j'ai toujours un problème pour obtenir le jour précédent notamment, si la date saisie est le 1/9/2011 j'obtiens le 30/08/2012 et non pas le 31/08/2012.
Normal, quand tu définis ton mois, tu ne tiens pas compte du décalage d'un mois dû au fait que les mois en JavaScript commencent à 0 :
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 16h33   #6
Invité de passage
 
Inscription : août 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 8
Points : 1
Points : 1
merci c'est enfin résolu.
il n'est pas optimisé mais il marche, même avec les années bissextilles
si cela peut intéresser d'autre personne.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
function isBissextille(annne){
		return  (new Date(annne,2,0).getDate())>=29;
	}
function dtfinPeriode(strDate){	
	    annee = strDate.substring(6,10);
	    month = strDate.substring(3,5);
	    day = strDate.substring(0,2);	
		d = new Date(annee,month-1,day);		
		d.setDate((d.getDate()-1));	
		var next12 = new Date(d.getFullYear(),d.getMonth()+13,0);		
		next12.setDate(Math.min(d.getDate(),next12.getDate()));		
		if 	(isBissextille(next12.getFullYear()) && next12.getMonth()==1 && month=='03') next12.setDate((next12.getDate()+1));	
 
		return next12;
	  }
lecimerien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 16h49   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789


Tu te compliques un peu la vie là...
Code :
1
2
3
4
5
6
function plus12(jour){
    var elems = jour.split('/');
    var maDate = new Date(parseInt(elems[2],10)+1, parseInt(elems[1],10)-1, elems[0]);
    maDate.setDate(parseInt(elems[0],10)-1);
    retun maDate;
}
Quel besoin de tester les années bissextiles ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 16h52   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 040
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 040
Points : 45 141
Points : 45 141
comme sus dit :
Citation:
parce qu'il faut commencer par l'année, puis le mois et terminer par le jour !
le fait de commencer par l'année ou de faire comme Beef en passant les trois paramètres en une seule fois t'exempte de vérifier les années bissextiles ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 17h02   #9
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Envoyé par SpaceFrog
parce qu'il faut commencer par l'année, puis le mois et terminer par le jour !
Quelque part, c'est ce que je propose aussi : je ne décrémente le jour qu'une fois la date fixée pour l'année et le mois
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 18h00   #10
Invité de passage
 
Inscription : août 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 8
Points : 1
Points : 1
C'est clair que c'est beaucoup plus simple, et évident.

Pourquoi on cherche compliqué quand c'est si simple.
Merci


lecimerien est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h59.


 
 
 
 
Partenaires

Hébergement Web