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 : 14131
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é

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

{C / C++ / C++.NET} TRANSFORMER UN ENTIER EN DEUX NOMBRES COMPOSÉ DES MEMES CHIFFRES ORDONNÉS PAR ORDRE CROISSANT ET DÉCROISSANT
Programme permettant de transformer un nombre en deux nombres composés des mêmes chiffres ordonnés d...

{Visual Basic, VB6, VB.NET, VB 2005} CONVERSION D'UN NOMBRE EN "PACKED NUMBER", ET INVERSEMENT
Fonction permettant de convertir un nombre (entier ou décimal, positif ou négatif) en nombre packé (...

{C / C++ / C++.NET} FACTORISATION D'UN ENTIER EN PRODUIT DE NOMBRES PREMIERS AVEC UNE FONCTION RÉCURSIVE
Ce programme affiche les facteurs premiers composant le nombre entré en paramètre, grâce à un algori...

{PHP} DIFFÉRENCE ENTRE DEUX DATE EN JOURS (LISTE RÉCUPÉRÉE DANS UN TABLEAU)
Salut J'ai cherché une fonction permettant de récupérer une liste de date entre deux dates donnée...