A voir également:
- Jour ouvrable
- Mise a jour airpods - Guide
- Dans la table des matières de ce document, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Desactiver mise a jour windows 10 - Guide
- Mise a jour windows 11 22h2 - Guide
- Qu'est ce qu'une femme fait 3 fois par jour - Forum Loisirs / Divertissements
4 réponses
sandul
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
721
12 nov. 2009 à 17:32
12 nov. 2009 à 17:32
Salut,
Je ferais ceci (sans garantie d'avoir la meilleure solution):
Disons qu'il s'agit d'une addition. Prendre le jour en semaine de notre date (1 pour lundi, 2 pour mardi etc). Rajouter le nombre de jour voulu et faire une division par 5. Tronquer le résultat. Le nombre obtenu = le nombre de week-ends qui séparent notre date de la date finale ==> ajouter ce nombre * 2 au nombre représentant les jours ouvrables. Nous obtenons le nombre de jours (tout confondu) à rajouter.
Ensuite, c'est bien simple: on transforme notre date en GregorianCalendar et l'on fait une simple addition de jours via la fonction add() du Calendar.
++
Je ferais ceci (sans garantie d'avoir la meilleure solution):
Disons qu'il s'agit d'une addition. Prendre le jour en semaine de notre date (1 pour lundi, 2 pour mardi etc). Rajouter le nombre de jour voulu et faire une division par 5. Tronquer le résultat. Le nombre obtenu = le nombre de week-ends qui séparent notre date de la date finale ==> ajouter ce nombre * 2 au nombre représentant les jours ouvrables. Nous obtenons le nombre de jours (tout confondu) à rajouter.
Ensuite, c'est bien simple: on transforme notre date en GregorianCalendar et l'on fait une simple addition de jours via la fonction add() du Calendar.
++
sandul
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
721
13 nov. 2009 à 10:39
13 nov. 2009 à 10:39
Disons que tu veux rajouter 3 jours à la date dte:
C'est bien ce que tu cherchais ?
// nous avons une date java.util.Date dte = new java.util.Date(); // zavons besoin d'un Calendar pour pouvoir faire // ce genre d'arithmétique java.util.Calendar cal = java.util.Calendar.getInstance(); cal.setTime(dte); // rajout de 3 jours cal.add(java.util.Calendar.DATE, 3); // éventuellement, on récupère une date flambant neuve java.util.Date newDte = cal.getTime();
C'est bien ce que tu cherchais ?
voila mon code java concernant l'addition d'un nombre de jour maisle probleme c'est que ce code n'est pas executable et la fonction public int traitementNbrJours(int jour, Date date) elle manque du code et je ne sais pas que ce qu'il me manque pour resoudre mon pbm
package oracle.client;
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.math.*;
public class traiterDate{
private Date dateEntree;
private int nbrJours;
private Date dateSortie;
public traiterDate(String dateEntree, String nbrJours){
try{
this.dateEntree = stringToDate(dateEntree, "dd/MM/yyyy");
this.nbrJours = Integer.parseInt(nbrJours);
}catch(Exception e){System.out.println(e);}
}
public void traitement (){
int nbrJoursT;
nbrJoursT = traitementNbrJours(nbrJours, dateEntree);
GregorianCalendar date = new GregorianCalendar();
date.setGregorianChange(dateEntree);
date.add(date.DAY_OF_YEAR,nbrJoursT);
dateSortie = date.getGregorianChange();
}
public int traitementNbrJours(int jour, Date date) {
int var;
var = ((jour - date.getDay()) / 7) * 2 + jour;/**à voir ?????????????????????????? le probleme c"est que j'arrive pas a executer ce programme on plus cette fonction la ne retourne pas toujours une date exacte a la date trouvee a la suite d'un tournage a la main la date retournee */
return var;
}
public Date getDateSortie (){
return dateSortie;
}
public static Date stringToDate(String sDate, String sFormat)throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
return sdf.parse(sDate);
}
}
merci pour m'aider
package oracle.client;
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.math.*;
public class traiterDate{
private Date dateEntree;
private int nbrJours;
private Date dateSortie;
public traiterDate(String dateEntree, String nbrJours){
try{
this.dateEntree = stringToDate(dateEntree, "dd/MM/yyyy");
this.nbrJours = Integer.parseInt(nbrJours);
}catch(Exception e){System.out.println(e);}
}
public void traitement (){
int nbrJoursT;
nbrJoursT = traitementNbrJours(nbrJours, dateEntree);
GregorianCalendar date = new GregorianCalendar();
date.setGregorianChange(dateEntree);
date.add(date.DAY_OF_YEAR,nbrJoursT);
dateSortie = date.getGregorianChange();
}
public int traitementNbrJours(int jour, Date date) {
int var;
var = ((jour - date.getDay()) / 7) * 2 + jour;/**à voir ?????????????????????????? le probleme c"est que j'arrive pas a executer ce programme on plus cette fonction la ne retourne pas toujours une date exacte a la date trouvee a la suite d'un tournage a la main la date retournee */
return var;
}
public Date getDateSortie (){
return dateSortie;
}
public static Date stringToDate(String sDate, String sFormat)throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
return sdf.parse(sDate);
}
}
merci pour m'aider
voici comment faire:
public static java.util.Date ajouter(java.util.Date date, int nbJours) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
while (nbJours != 1) {
cal.add(Calendar.DATE, 1);
if (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
nbJours--;
}
}
return cal.getTime();
}
public static java.util.Date soustraire(java.util.Date date, int nbJours) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
while (nbJours != 1) {
cal.add(Calendar.DATE, -1);
if (cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
nbJours--;
}
}
return cal.getTime();
}