|
Nombre de jours entre 2 dates |
Iniciado por guest, jun., 15 2005 11:28 PM - 9 respostas |
| |
| | | |
|
| |
Publicado em junho, 15 2005 - 11:28 PM |
Bonjour,
J'aimerais savoir s'il existe une fonction qui permettrait de calculer le nombre de jours entre 2 dates, en excluant le Dimanche.
Exemple : du Lundi au Dimanche = 6 jours et non pas 7 jours.
D'avance merci |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 1:46 AM |
Christophe a écrit :
Bonjour,
J'aimerais savoir s'il existe une fonction qui permettrait de calculer le nombre de jours entre 2 dates, en excluant le Dimanche.
Exemple : du Lundi au Dimanche = 6 jours et non pas 7 jours.
D'avance merci
Bonsoir, DateDifférence() est votre amie. La suite, à savoir exclure les dimanches et à mettre en relation avec le nombre de semaine de la période et la position des premires et derniers dimanches. C'est donc de l'algèbre.
DateDifférence donne le nombre de jours. Si on divise par 7 on a le nombre de semaines. Le modulo permet de savoir si on a des semaines entières...
j'ai pas le code sous la main mais c'est un début de piste à creuser.
-- ++ R&B WDForge.org |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 10:37 AM |
Merci pour la réponse, mais je ne comprends pas trop bien.
Je connais la fonction DateDifférence(), mais je ne vois pas trop l'intérêt de le diviser par 7 pour obtenir la semaine. Sachant que le nombre de jour entre 2 dates peut être de n'importe quel jour et non pas forcément du Lundi au Dimanche.
Mais c'est un début ! héhé
Si quelqu'un d'autre à une idée et/ou un micro application, ça m'arrangerait bien.
D'avance merci. |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 12:42 PM |
Bonjour
"Christophe" <guest@newsgroup.fr> a écrit dans le message de news: 42b111c9$1@news.pcsoft.fr...
Je connais la fonction DateDifférence(), mais je ne vois pas trop l'intérêt de le diviser par 7 pour obtenir la semaine. Sachant que le nombre de jour entre 2 dates peut être de n'importe quel jour et non pas forcément du Lundi au Dimanche.
ben si, il y a un intérêt !
Va aussi faire un tour du coté de DateVersJours(MaDate)..
Pour le reste, faut réfléchir un peu...
Jean-Louis MOREL |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 12:50 PM |
Christophe a écrit :
Merci pour la réponse, mais je ne comprends pas trop bien.
Je connais la fonction DateDifférence(), mais je ne vois pas trop l'intérêt de le diviser par 7 pour obtenir la semaine. Sachant que le nombre de jour entre 2 dates peut être de n'importe quel jour et non pas forcément du Lundi au Dimanche.
Mais c'est un début ! héhé
Si quelqu'un d'autre à une idée et/ou un micro application, ça m'arrangerait bien.
D'avance merci.
Bonjour précision : partieentiere(datedifférence(d1,d2)/7) = Nombre de semaines dans la période = nombre de dimanches (un par dsemaine non ?) +/- 1 ou 2 selon si les bornes sont des dimanches !!! Manque juste à travailler ce dernier point !
++ R&B WDForge.org |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 1:19 PM |
Salut Christophe
Voici une explication (mode d'emploi) plus profond(e) -------------------------------------------------------------
Ton calcul doit considérer plusieurs facteurs
1) <Résultat> = DateVersJour(<DateDébut>) => num_jourSemaine
Numéro du jour de la semaine correspondant à la date spécifiée :
1 - Lundi 2 - Mardi 3 - Mercredi 4 - Jeudi 5 - Vendredi 6 - Samedi 7 - Dimanche
2) DateDifférence te donne le nombre de jours => nbr_Jours
Exemple 1 : premier jour vendredi 10 juin, 2. jour Mardi 14 juin = 4 Jours Exemple 2 : premier jour vendredi 10 juin, 2. jour Mercredi 22 juin = 12 Jours Exemple 3 : premier jour Lundi 13 10 juin, 2. jour Vendredi 17 juin = 4 Jours
3) Calcule le nombre de semaine (nombre de jours/7) => nbr_Semaines et le modulo nombre de jours et 7 => nbr_Modulo
Exemple 1 : nombre de semaine = 0 , Modulo = 4 Exemple 2 : nombre de semaine = 1 , Modulo = 5 Exemple 3 : nombre de semaine = 0 , Modulo = 4
4) Détermine s'il y a un débordement de la semaine par rapport à la date de début
additionne le résultat obtenu sous 1) avec le résulat du Modulo,
num_jourSemaine + nbr_Modulo
Si ce résultat est supérieur à 7 il y a débordement de semaine => Debordement = 1 sinon Debordement= 0
5) ton calcul final sera donc
nbr_Jours - (nbr_Semaines + Débordement)
Exemple 1 : 4 - ( 0 + 1 ) = 3 Exemple 2 : 12 - ( 1 + 1 ) = 10 Exemple 3 : 4 - ( 0 + 0 ) = 4
J'espère que j'ai été assez clair.
Bon Dev,
@+, JF |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 2:08 PM |
Voilà, à force de chercher un peu, j'ai la réponse. Voilà quelques lignes qui pourraient servir à quelqu'un :
i est un entier pour i=dateversjour(datedébut) a dateversjour(datefin) si i<>7 alors nbrjour++ fin fin
Datedébut, datefin et nbrjour sont des champs de saisie. 7 étant le numéro de jour de la semaine 7 = Dimanche. Remarquer, on pourrait le faire sur les autres jours de la semaine.
Si quelqu'un à une idée pour inclur les jours fériés dans ces quelques lignes, ça pourrait encore m'intéresser. |
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 2:21 PM |
bof comme solution, si on a des dates vraiment tres éloignées cela risque d'etre long comme boucle
Christophe wrote:
Voilà, à force de chercher un peu, j'ai la réponse. Voilà quelques lignes qui pourraient servir à quelqu'un :
i est un entier pour i=dateversjour(datedébut) a dateversjour(datefin) si i<>7 alors nbrjour++ fin fin
Datedébut, datefin et nbrjour sont des champs de saisie. 7 étant le numéro de jour de la semaine 7 = Dimanche. Remarquer, on pourrait le faire sur les autres jours de la semaine.
Si quelqu'un à une idée pour inclur les jours fériés dans ces quelques lignes, ça pourrait encore m'intéresser.
|
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 6:16 PM |
Voici un code qui marche bien : (on saisie le debut dans saisie1, la fin dans saisie2, le résultat s'affiche dans saisie3, et le temps d'execution dans saisie4) Pour info, du 1er janvier 1900 au 3 janvier 2005, le temps de traitement fut de 3 centiemes de secondes.
Pour les jours ferié, il te faut faire un fichier des feriés, et checker pour chaque jour. Pour le fichier des feriés, regarde dans l'exemple wd_planning, il se sert d'un truc similaire.
TpsDep est un entier=HeureVersEntier(HeureSys()) TmpDate est un entier=DateVersEntier(Saisie1) DateFin est un entier=DateVersEntier(Saisie2)
NbJour est un entier = 0
TANTQUE TmpDate<=DateFin SI EntierVersJour(TmpDate)<>7 ALORS NbJour++ FIN TmpDate++ FIN
Saisie3 = NbJour TpsFin est un entier=HeureVersEntier(HeureSys())
Saisie4 = EntierVersHeure(TpsFin-TpsDep)
"Christophe" <guest@newsgroup.fr> a écrit dans le message de news: 42b07515$1@news.pcsoft.fr...
Bonjour,
J'aimerais savoir s'il existe une fonction qui permettrait de calculer le nombre de jours entre 2 dates, en excluant le Dimanche.
Exemple : du Lundi au Dimanche = 6 jours et non pas 7 jours.
D'avance merci
|
| |
| |
| | | |
|
| | |
| |
Publicado em junho, 16 2005 - 11:36 PM |
Merci pour vos aides.
C'est super sympas !!! |
| |
| |
| | | |
|
| | | | |
| | |
|