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 : 15/02/2010 16:40:21
Vue : 27014
Catégorie(s) : Date & Heure
Langages dispo pour ce code :
- VB6, VBA
- Windev
- 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.
Langage : Windev
Date ajout : 12/02/2010
Posté par JoTech [Liste]
DateMAJ : 15/02/2010
PROCEDURE Jours_Ouvrable(Date_Debut,Date_Fin)

x,Nbre_jours sont des entiers

nJours_Ouvrable est un entier = 0

Nbre_jours = DateDifférence(Date_Debut,Date_Fin)
POUR x = 1 A Nbre_jours
  Trace(DateVersJourEnLettre(Date_Debut))
  SI DateVersJourEnLettre(Date_Debut) <> "Samedi" ET DateVersJourEnLettre(Date_Debut) <> "Dimanche" ALORS
    nJours_Ouvrable++ 
  FIN
  Date_Debut..Jour ++ 
FIN

RENVOYER nJours_Ouvrable


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



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

{Javascript / DHTML} OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE
Ce script permet à travers une fonction prenant comme argument le numéro du mois dont on veut savoir...

{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. ...

{PHP} CALCUL NOMBRE JOUR OUVRABLE (JOUR FERIER) ENTRE 2 DATES
Cette fonction permet de donner un nombre de jour ouvrable entre deux dates. -Les filtres sont: ...

{Assembleur} MULTIPLIER POUR DIVISER, NOMBRES MAGIQUES
la division est lente par rapport a la multiplication. On va chercher a définir ce qu'est l'inver...

{PHP} HIT COUNTER
Titre: Hit counter Hit counter un exemple de code qui monter comment créer un visiteurs contrer av...