Avoir le 5eme jour ouvré d'un mois
JeuneCodeur
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je crée une application gérant des planifications, j'ai pas mal de cas à gérer comme avoir le 1er jour d'un mois, 3 eme samedi d'un mois, etc...
Je bloque sur le cas pour récupérer le 5eme jour ouvré d'un mois, je ne trouve pas de fonction déjà existante pour m'aider et je ne vois pas comment je peux faire...
Un jour ouvré c'est un jour où on travail donc pas le Wk par exemple si le premier jour du mois c'est mercredi 01 juillet 2020 le 5eme jour ouvré c'est mardi 7 juillet car on ne compte pas le WK
Et je n'arrive pas conceptualisé la boucle...
Tant que FirstDayOfmonth n'arrive pas à 5 et elle doit passer par des conditions pour pas compter le WK
Si vous avez des idées je suis preneur..
Merci d'avance
Je crée une application gérant des planifications, j'ai pas mal de cas à gérer comme avoir le 1er jour d'un mois, 3 eme samedi d'un mois, etc...
Je bloque sur le cas pour récupérer le 5eme jour ouvré d'un mois, je ne trouve pas de fonction déjà existante pour m'aider et je ne vois pas comment je peux faire...
Un jour ouvré c'est un jour où on travail donc pas le Wk par exemple si le premier jour du mois c'est mercredi 01 juillet 2020 le 5eme jour ouvré c'est mardi 7 juillet car on ne compte pas le WK
LocaleDate firstDayOFMonth = LocateDate.now().withDayOhMonth(1); // récupère le premier jour du mois
LocalDate workingday = firstDayOhMonth.plusDays(5);
Et je n'arrive pas conceptualisé la boucle...
Tant que FirstDayOfmonth n'arrive pas à 5 et elle doit passer par des conditions pour pas compter le WK
Si vous avez des idées je suis preneur..
Merci d'avance
A voir également:
- Avoir le 5eme jour ouvré d'un mois
- Comment ouvrir un fichier epub ? - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Comment ouvrir un fichier bin ? - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
- Comment ouvrir un fichier dat - Guide
4 réponses
Bonjour
Dans ton explication tu ne parles pas des jours fériés.
Dois tu en tenir compte? Car géré le week-end c’est bien plus simple que les jours fériés.
Sans les jours fériés
Si le samedi est un jour ouvré:
Si le samedi n’est pas un jour ouvré.
S’il y a un jour férié qui tombe le week-end ça ne change rien, mais s’il tombe un jour ouvré ça décale.
C’est facile de gérer les dates fixent (par exemple le 1er mai), mais les dates fluctuantes, il faut les calculer (lundi de Pentecôte par exemple)
Dans ton explication tu ne parles pas des jours fériés.
Dois tu en tenir compte? Car géré le week-end c’est bien plus simple que les jours fériés.
Sans les jours fériés
Si le samedi est un jour ouvré:
- si le premier jour du moi est un dimanche, un lundi ou un mardi, le 5eme jour ouvré est le 5 du moi
- dans le cas contraire, le 5eme jour ouvré est le 6 du moi.
Si le samedi n’est pas un jour ouvré.
- si le premier jour du moi est dimanche ou un lundi, le 5eme jour ouvré est le 5 du moi
- dans le cas contraire, le 5eme jour ouvré est le 7 du moi.
S’il y a un jour férié qui tombe le week-end ça ne change rien, mais s’il tombe un jour ouvré ça décale.
C’est facile de gérer les dates fixent (par exemple le 1er mai), mais les dates fluctuantes, il faut les calculer (lundi de Pentecôte par exemple)
Oui, je dois également gérer les jours féries mais je voulais déjà gérer le WK.
Je visualise la méthode que je dois adapter mais j'arrive pas à la retranscrire en code
Je visualise la méthode que je dois adapter mais j'arrive pas à la retranscrire en code
Je ne t'aiderai pas dans la mise en musique Java, je ne connais pas ce langage.
Pour les jours fériés fixes français, tu peux exclure ceux venant après le 7 du moi.
Il reste
Pour les jour fériés français fluctuant, il faut avant tout calculer la date de Pâques.
https://fr.wikipedia.org/wiki/Calcul_de_la_date_de_P%C3%A2ques
Les autres en découlent:
Selon les années, chacune de ces 3 dates peut se trouver avant le 7 du moi et donc avoir une influence sur ton calcul.
Pour les jours fériés fixes français, tu peux exclure ceux venant après le 7 du moi.
Il reste
- jour de l'an
- 1er mai
- La Toussaint
Pour les jour fériés français fluctuant, il faut avant tout calculer la date de Pâques.
https://fr.wikipedia.org/wiki/Calcul_de_la_date_de_P%C3%A2ques
Les autres en découlent:
- Le lundi de Pâques, c'est le lendemain de Pâques
- le jeudi de l'ascension c'est 39 jours après Pâques
- le lundi de Pentecôte c'est 50 jours après Pâques
Selon les années, chacune de ces 3 dates peut se trouver avant le 7 du moi et donc avoir une influence sur ton calcul.
Bonjour,
Tu devrais décomposer ton code en 5 méthodes :
La dernière méthode - celle qui t'intéresse - n'étant au final qu'une boucle appelant la méthodes d'avant.
Tu devrais décomposer ton code en 5 méthodes :
- boolean isWeekEnd(LocalDate)
- LocalDate getDimanchePaques(Year)
- boolean isJourFerie(LocalDate)
- LocalDate nextJourOuvre(LocalDate)
- LocalDate getNthJourOuvre(Month,Year,int)
La dernière méthode - celle qui t'intéresse - n'étant au final qu'une boucle appelant la méthodes d'avant.