Bonjour a tous,
je recherche un code ou une méthode qui me donnerait le dernier jour ourvrable du mois courant.
Celà existe-t-il ?
D'avance merci pour votre aide
Stujava
Bonjour a tous,
je recherche un code ou une méthode qui me donnerait le dernier jour ourvrable du mois courant.
Celà existe-t-il ?
D'avance merci pour votre aide
Stujava
Je ne connais rien de tout fait, mais java.util.GregorianCalendar possède toutes les méthodes de bases pour faire ce que tu demandes en quelques lignes.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Salut,
+1
Mais pourquoi passer par GregorianCalendar et ne pas utiliser directement Calendar, comme avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // On récupère un calendar initialisé à la date du jour : Calendar cal = Calendar.getInstance(); // On se positionne sur le dernier jour du mois en cours : cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); // Et on enlève 1 jour tant qu'on tombe sur un samedi ou un dimanche int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); while ( dayOfWeek==Calendar.SATURDAY || dayOfWeek==Calendar.SUNDAY ) { cal.add(Calendar.DAY_OF_MONTH, -1); dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); }Il reste juste le problème des jours fériées, qui ne sont pas géré car dépendant du pays...
Il faudrait générer une liste des jours férié et comparer à la date actuelle.
Pour info en France on a deux types de jour fériés :
- Les jours fériés à une date fixe, et donc facile à déterminer : 1er janvier, 1 mai, 8 mai, 14 juillet, 15 août, 1er novembre, 11 novembre et 25 décembre.
- Les jours fériés à date variable, qui dépendent du dimanche de Paques : Vendredi saint, Lundi de Paques, Ascension et Lundi de Pentecôte).
Il y a plusieurs algorithme pour calculer la date du dimanche de Paques : http://fr.wikipedia.org/wiki/Calcul_...de_P%C3%A2ques
a++
PS : A noter qu'il existe également des jours fériés supplémentaires dans les DOM-TOM
si il existais quelquechose de tout fait en java sa se saurais
c'est bien de chercher des methodes toutes pretes mais pourquoi pas simplement te faire ta propre methode pour sa c pas tres difficile et sa te permetrais de gerer par la meme ocasion les jours feriés et autre
enfin je dis sa comme sa![]()
Spécialiste des questions bêtes
”If you can't explain it simply, you don't understand it” (Ce que tu ne peux pas expliquer simplement, tu ne le comprends pas) Albert Einstein
Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
Il y a quelques années, j'avais fait un petit bricolage pour me donner le libellé d'un jour férié (français) à partir d'un GregorianCalendar.Bah oui tiens réinventons la voiture aussi ...
C'est assez illisible et probablement pas très rigoureux, mais bon, si cela peut rendre service ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 import java.util.Calendar; import java.util.GregorianCalendar; ..... // à inclure dans la classe qui en a besoin ... public String JourFériéLib(GregorianCalendar G) { GregorianCalendar Test = new GregorianCalendar(G.get(Calendar.YEAR),G.get(Calendar.MONTH),G.get(Calendar.DAY_OF_MONTH)); int A = G.get(Calendar.YEAR); // année de la date examinée int T = 0; int T_48 = 0; // pour calculs intermédiaires GregorianCalendar LP; // contiendra la date du lundi de Pâques String TYPEJOUR = "Ordinaire"; // valeur par défaut de la date // recherche du lundi de Pâques de la date Test T = Modulo(((255 - 11 * Modulo(A, 19)) - 21) , 30 ) + 21; if (T > 48) { T_48 = -1; } else { T_48 = 0; } LP = new GregorianCalendar(A, 3-1, 2); LP.add(Calendar.DAY_OF_YEAR , (T + T_48 + 6 - Modulo((A + A / 4 + T + T_48 + 1) , 7))); // valeurs par défaut if (Test.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {TYPEJOUR = "Samedi";} if (Test.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {TYPEJOUR = "Dimanche";} // Jours fériés mobiles LP.add(Calendar.DAY_OF_YEAR,-1); if (Test.equals(LP)) {TYPEJOUR = "Dimanche de Pâques";} LP.add(Calendar.DAY_OF_YEAR,1); if (Test.equals(LP)) {TYPEJOUR = "Lundi de Pâques";} LP.add(Calendar.DAY_OF_YEAR,38); if (Test.equals(LP)) {TYPEJOUR = "Assension";} LP.add(Calendar.DAY_OF_YEAR,10); if (Test.equals(LP)) {TYPEJOUR = "Dimanche de Pentecôte";} LP.add(Calendar.DAY_OF_YEAR,1); if (Test.equals(LP)) {TYPEJOUR = "Lundi de Pentecôte";} // Jours fériés fixes if (Test.equals(new GregorianCalendar(A, 0, 1))) {TYPEJOUR = "Jour de l'an";} if (Test.equals(new GregorianCalendar(A, 4, 1))) {TYPEJOUR = "Fête du travail";} if (Test.equals(new GregorianCalendar(A, 4, 8))) {TYPEJOUR = "8 Mai 45";} if (Test.equals(new GregorianCalendar(A, 6, 14))) {TYPEJOUR = "Fête nationale";} if (Test.equals(new GregorianCalendar(A, 7, 15))) {TYPEJOUR = "15 Août";} if (Test.equals(new GregorianCalendar(A, 10, 1))) {TYPEJOUR = "Toussaint";} if (Test.equals(new GregorianCalendar(A, 10, 11))) {TYPEJOUR = "11 novembre 18";} if (Test.equals(new GregorianCalendar(A, 11, 25))) {TYPEJOUR = "Noël";} return TYPEJOUR; } public static int Modulo(int x, int y) { return (x - ((x/y) * y)); }
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager