OVH Cloud OVH Cloud

VB.NET et les jours fériés

12 réponses
Avatar
aitoz
Bonjour à tous,

Je souhaiterais savoir comment faire pour ajouter des jours a une date, mais
en tenant compte des jours fériés.
Comment d'après vous je peux faire ?
En stockant le jours fériés quelque part ?
Est-ce que ca existe dans une fonction toute faites ? mais alors comment
savoir si c'est fériés, puisque ca dépend du pays ou mon appli va etre
utilisée ?
Est-ce que c'est stocké dans les paramètres windows ?

Toute information sera la bien venue.

Merci par avance

Laurent

10 réponses

1 2
Avatar
Fabien Bezagu
> Je souhaiterais savoir comment faire pour ajouter des jours a une date,
mais
en tenant compte des jours fériés.



Qu'entends-tu par "ajouter des jours à une date" ?

Comment d'après vous je peux faire ?
En stockant le jours fériés quelque part ?
Est-ce que ca existe dans une fonction toute faites ? mais alors comment
savoir si c'est fériés, puisque ca dépend du pays ou mon appli va etre
utilisée ?
Est-ce que c'est stocké dans les paramètres windows ?



A ma connaissance, les jours fériés ne sont pas stockés sous Windows. Il
existe des packs d'extension pour Outlook dans lesquels ces jours sont
renseignés selon le pays et la religion. Je ne sais cependant pas s'il
serait envisageable de s'interfacer avec Outlook pour récupérer ces
informations.

Fabien
Avatar
aitoz
Je vais devoir créer une fonction qui en ajoutant un certain nombre de jours
devra calculer une date réponse en prenant en compte les jours fériés !

Exemple concret : Je dois effectuer la livraison des pièces en J+7.
Si je suis le mardi 12 juillet 2005 , J+7, ca me met ma livraison le
vendredi 22 juillet 2005.
Parce que j'ai un jour férié (le 14 juillet) et un week-end !

Voila, allors je me demande comment je vais gérer les jours fériés et les
week-end et peut etre meme les congés et RTT !
Je pense qu'il va falloir que je stock toutes ces informations dans une
table.
Le probleme est que : comment je vais alimenter cette table, par exemple ?,?
Je ne peux pas demander a mes users de saisir tous les jours fériés tous les
ans etc...
Pour les RTT et congés, a la limite je peux prévoir une saisie.
Mais pour les week-end ???

Est-ce que quelqu'un a deja travaillé avec ce genre de contraintes ?

Laurent
Avatar
Fabien Bezagu
Pour les week-end, c'est facile : tu as DateTime.DayOfWeek.

Pour les jours fériés, je pense qu'une table en base n'est pas suffisante.
Pour le 14 juillet, Noël...tout va bien car le jour est connu (tous les 25
décembre de tous les ans, on sait que c'est Noël) mais pour certains jours,
comme Pâques, c'est un calcul basé sur la lune ou je ne sais quoi, donc pas
évident en base. Et je parle pas du lundi de Pencôte ;-)

"aitoz" a écrit dans le message de news:

Je vais devoir créer une fonction qui en ajoutant un certain nombre de
jours devra calculer une date réponse en prenant en compte les jours
fériés !

Exemple concret : Je dois effectuer la livraison des pièces en J+7.
Si je suis le mardi 12 juillet 2005 , J+7, ca me met ma livraison le
vendredi 22 juillet 2005.
Parce que j'ai un jour férié (le 14 juillet) et un week-end !

Voila, allors je me demande comment je vais gérer les jours fériés et les
week-end et peut etre meme les congés et RTT !
Je pense qu'il va falloir que je stock toutes ces informations dans une
table.
Le probleme est que : comment je vais alimenter cette table, par exemple
?,?
Je ne peux pas demander a mes users de saisir tous les jours fériés tous
les ans etc...
Pour les RTT et congés, a la limite je peux prévoir une saisie.
Mais pour les week-end ???

Est-ce que quelqu'un a deja travaillé avec ce genre de contraintes ?

Laurent



Avatar
aitoz
Oui tout a fait !
Donc voila mon dilem.
Peut-etre que je ferais une table calendrier ou je pourrais inscrire toutes
les dates bizarres ?!

C 'est pas le plus simple pour l'utilisateur final, mais je crois que c'est
le plus simple pour moi.
Cependant, si quelqu'un a une solution, meme compliquée, je suis preneur !

je vous tiens au courant.
Avatar
Megaten
Il existe un algo pour determiner Paques
Je le poste des que je met la main dessus.

aitoz a écrit :
Oui tout a fait !
Donc voila mon dilem.
Peut-etre que je ferais une table calendrier ou je pourrais inscrire toutes
les dates bizarres ?!

C 'est pas le plus simple pour l'utilisateur final, mais je crois que c'est
le plus simple pour moi.
Cependant, si quelqu'un a une solution, meme compliquée, je suis preneur !

je vous tiens au courant.




Avatar
Megaten
Voici ce que j'ai trouvé sur VbFrance

Private Function fnPAQUES(annee As Integer) As String
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer
a = annee Mod 19
b = annee 100
c = annee Mod 100
d = (19 * a + b - (b 4) - ((b - ((b + 8) 25) + 1) 3) + 15) Mod 30
e = (32 + 2 * ((b Mod 4) + (c 4)) - d - (c Mod 4)) Mod 7
f = (d + e - 7 * ((a + 11 * d + 22 * e) 451) + 114)
fnPAQUES = DateSerial(annee, f 31, (f Mod 31) + 1)
End Function

avec quelques explications

Cette petite fonction aux calculs obscurs vous donne la date du jour de pâques. Pour avoir le lundi de pâques,
il vous suffira d'y ajouter 1 jour.
Pour l'ascension, il vous faudra y ajouter 39 jours, et enfin pour feu le lundi de la pentecôte, il faut
ajouter 50 jours (toujours par rapport au dimanche de pâques).
Pour plus d'explication sur ce calcul, lisez le nouveau testament ;-).

Pour plus de detail je te conseille la discussion qui en decoule sur le site


aitoz a écrit :
Oui tout a fait !
Donc voila mon dilem.
Peut-etre que je ferais une table calendrier ou je pourrais inscrire toutes
les dates bizarres ?!

C 'est pas le plus simple pour l'utilisateur final, mais je crois que c'est
le plus simple pour moi.
Cependant, si quelqu'un a une solution, meme compliquée, je suis preneur !

je vous tiens au courant.




Avatar
aitoz
Super interessant !
Je regarderais la semaine prochaine, la j'ai trop de boulot !
Promis je garde le poste ouvert et j'informe de la suite.
Par contre, je ne suis tjs pas sur de la méthode. Même si je trouve un algo
pour toute les dates ca risque d'etre chiant non ?
A moins de calculer tous les jours fériés et autre sur 50 ans ! et je suis
quasiment certain que mon application ne servira jamais aussi longtemps. Pas
bête comme idée. Même 100 ans soyons fou. lol
De toute facon il faudra que je stock mes congés, rtt et autres ....

En tous cas merci de votre réponse et si vous avez d'autres algo pour
d'autres jours fériés je suis preneur.

Laurent
Avatar
Megaten
Fais comme tu penses mais initialisé une table tout les ans cela n'est pas le bout du monde?
Et tu n'y achappera pas, sans compter que les jours fériés sont les plus faciles à traiter.
N'oublie pas Pentecote en Janvier ou en Novembre pour certain... sans oublier les jours fériés locaux...
Ne rempli pas une table sur 50 ans tu es sur de te planter

aitoz a écrit :
Super interessant !
Je regarderais la semaine prochaine, la j'ai trop de boulot !
Promis je garde le poste ouvert et j'informe de la suite.
Par contre, je ne suis tjs pas sur de la méthode. Même si je trouve un algo
pour toute les dates ca risque d'etre chiant non ?
A moins de calculer tous les jours fériés et autre sur 50 ans ! et je suis
quasiment certain que mon application ne servira jamais aussi longtemps. Pas
bête comme idée. Même 100 ans soyons fou. lol
De toute facon il faudra que je stock mes congés, rtt et autres ....

En tous cas merci de votre réponse et si vous avez d'autres algo pour
d'autres jours fériés je suis preneur.

Laurent




Avatar
Fabien Bezagu
En faisant une petite recherche sur google (en fraçais), je suis tombé sur
ce site :

http://www.csharpfr.com/code.aspx?ID&760

J'ai vu aussi d'autres ressources, notamment une procédure stockée SQL
Server qui fait ça :

http://www.asp-php.net/scripts/asp.net/table_sql_temps.php

Ca peut être des bons points de départ, avec des approches différentes. J'ai
cependant cru comprendre que tu voulais que ça marche aussi pour d'autres
pays, voire pour d'autres religions. Personnellement, je ne trouve pas
l'algo c# très élégant mais je n'ai pas de meilleure solution à te
propososer. :-(

Bon courage

Fabien

"aitoz" a écrit dans le message de news:

Super interessant !
Je regarderais la semaine prochaine, la j'ai trop de boulot !
Promis je garde le poste ouvert et j'informe de la suite.
Par contre, je ne suis tjs pas sur de la méthode. Même si je trouve un
algo pour toute les dates ca risque d'etre chiant non ?
A moins de calculer tous les jours fériés et autre sur 50 ans ! et je suis
quasiment certain que mon application ne servira jamais aussi longtemps.
Pas bête comme idée. Même 100 ans soyons fou. lol
De toute facon il faudra que je stock mes congés, rtt et autres ....

En tous cas merci de votre réponse et si vous avez d'autres algo pour
d'autres jours fériés je suis preneur.

Laurent



Avatar
aitoz
Ben franchement je ne vois pas trop comment faire d'autre.
Apparemment mon idée est reeprise dans les exemples que m'a donné Fabien
Bezagu !!!
Ca me parait le plus simple.

De toute facon le 17 aout j'en saurais un peu plus ! J'aurais des
partenaires qui ont été confronté a ce genre de probleme et ils ont trouvé
une solution. Eux ils sont nombreux et très compétent, alors on verra bien a
quoi ils ont pensé ! lol

Je ne ferme pas le poste et je vous tiens au courant !
1 2