Les Snippets

Connexion

Calcul nombre de jours ouvrés entre deux dates

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 19/05/2008 11:31:54 et initié par Renfield [Liste]
Date de mise à jour : 24/06/2008 16:00:27
Vue : 8648
Catégorie(s) : Date & Heure
Langages dispo pour ce code :
- VB6, VBA
- Windev



Langage : VB6 , VBA
Date ajout : 19/05/2008
Posté par Renfield [Liste]
DateMAJ : 24/06/2008
Public Function DateDiff(Interval As String, Date1, Date2, Optional FirstDayOfWeek As VbDayOfWeek = vbSunday, Optional FirstWeekOfYear As VbFirstWeekOfYear = vbFirstJan1) As Variant
Dim nStep As Integer
Dim dLoop As Date
   If StrComp(Interval, "WD", vbTextCompare) Then
       DateDiff = VBA.DateDiff(Interval, Date1, Date2, FirstDayOfWeek, FirstWeekOfYear)
   Else
       nStep = Sgn(Date2 - Date1)
       If nStep Then
           For dLoop = Date1 + nStep To Date2 Step nStep
               If Not IsHoliday(dLoop) Then
                   DateDiff = DateDiff + nStep
               End If
           Next dLoop
       Else
           DateDiff = 0
       End If
   End If
End Function 
Remarque :
IsHoliday:  http://www.codyx.org/snippet_jours-feries-dimanche_355.aspx#1842

remplace la fonction VBA DateDiff
Langage : Windev
Date ajout : 13/04/2009
Posté par Mickey33 [Liste]

//Dans le code du bouton :
// début de la boucle
BOUCLE
             // prend en valeur la date de retour
                    Yannn est un entier=SAI_Retour_prevu
                    
                    DateVersJour(DateDuJour) // Retourne 2
                    //si les deux date sont identique on sort de la procedure
                    SI SAI_Retour_prevu=SAI_Derniere_sortie ALORS
                                               //si la derniere date est un samedi ou dimanche on sort sans rienb faire d'autre
                                                      SI DateVersJour(SAI_Retour_prevu) > 5 ALORS
                                                            //Info ("fin 01")
                                                            SORTIR
                                                      SINON
                                                      //si la derniere date n'est pas un samedi ou dimanche on compte un jour de plus
                                                            SAI_Saisie3=SAI_Saisie3+1
                                                            //Info ("fin 02")
                                                            SORTIR
                                                      FIN
                    
                    SINON
                                                                                       //si la  date est un samedi ou dimanche on change de jour
                                                                                        SI DateVersJour(SAI_Retour_prevu) > 5 ALORS
                                                                                       //compte un jour en moin valide dans le champs
                                                                                       date_moins_un()
                                                                                       SINON
                                                                                       //si la  date n'est pas un samedi ou dimanche on compte un jour de plus                                                                                    
                                                                                        SAI_Saisie3=SAI_Saisie3+1
                                                                                       //compte un jour en moin valide dans le champs
                                                                                       date_moins_un()
                                                                                       FIN
               FIN 
                    
                    FIN

// enfin dans une procedur Local nommée « date_moins_un() »
// Résumé : prend la date dans "SAI_retour_Prevu" en date valide.
PROCEDURE date_moins_un()
dDate  est une Date
dDate = SAI_Retour_prevu
dDate..Jour--
SI DateValide(dDate) ALORS
       SAI_Retour_prevu = dDate
SINON
       SAI_Retour_prevu = DateSys()
FIN

 

Remarque :
Dans une feuille mettre.
1 champ de saisie nommé « SAI_Derniere_sortie » format date
1 de saisie nommé « SAI_Retour_prevu » format date
1 de saisie nommé «  SAI_Saisie3 » format numérique
1 bouton.

Snippets en rapport avec : Jours, Fériés, Nombre, Isholiday, Ouvré



Codes sources en rapport avec : Jours, Fériés, Nombre, Isholiday, Ouvré

{PHP} CALCUL SIMPLE DU NOMBRE DE JOURS OUVRÉS ENTRE DEUX DATES (JOURS FÉRIÉS INTÉGRÉS)
Cette fonction permet de calculer le nombre de jours ouvrés entre deux dates, week-end et jours féri...

{PHP} NOMBRE DE JOURS ENTRE DEUX TIMESTAMP
Retourne le nombre de jours entre deux timestamp sans faire simplement la difference des timestamp, ...

{PHP} JOURS OUVRES
Bon, une petite fonction toute simple, mais qui peut être un life saver! Trouve le prochain jour ou...

{Visual Basic, VB6, VB.NET, VB 2005} CHIFFRE EN LETTRE FONCTION
Une petite fonction simlpe pour transformer un chiffre en lettre. Exemple: "15193" >> dix ...

{Visual Basic, VB6, VB.NET, VB 2005} NOMBRE DE JOURS
Il suffit de saisir une date de fin dans un Inputbox pour que le temps en jours d'écart s'affiche. ...

{Visual Basic, VB6, VB.NET, VB 2005} DETERMINE LE NOMBRE DE JOURS DANS UN MOIS
Determine le nombre de jours dans un mois pour une date precise. ...

{Delphi} GÉNÉRATEUR DE NOMBRES PSEUDO-ALÉATOIRES
Bonjour, voici un algorithme de génération de nombres pseudo-aléatoires, basé sur l'algorithme de ch...

{Javascript / DHTML} TROUVER LES FACTEURS D'UN NOMBRE
Un petit script utile qui va vous permettre de trouver les facteurs d'un nombre. Il peut trouver les...

{JAVA / J2EE} LES NOMBRES RATIONNELS
une implémentation des nombres rationnels avec toutes leurs opérations;addition, soustraction, multi...

{SQL} CONVERSION DE NOMBRE EN LETTRES (SQL)
Je me suis inspiré du code c# trouvé ici (http://files.codes-sources.com/fichier.aspx?id=21491&f=con...