begin process at 2012 02 13 07:26:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > DETERMINE SI UNE DATE EST FERIEE

DETERMINE SI UNE DATE EST FERIEE


 Information sur la source

 Description

4 fonctions qui permettent à tous les débutants d'intégrer un code compréhensible et facilement maintenable ou extensible.
La fonction à appeller est la fonction IsFerie.
La fonction Paques provient de mon précédent POST (http://www.vbfrance.com/codes/CALCUL-DATE-PAQUES- PARTIR-1583-SELON-OUDIN_39733.aspx) c'en est donc l'extension

Source

  • Function IsFerie(datetoanalyse As Date) As Boolean
  • If Not (IsFrozen(datetoanalyse)) Then
  • If Not (IsMobile(datetoanalyse)) Then
  • IsFerie = False
  • Else
  • IsFerie = True
  • End If
  • Else
  • IsFerie = True
  • End If
  • End Function
  • Function IsFrozen(datetoanalyse As Date) As Boolean
  • Dim Jour, Mois
  • Jour = Day(datetoanalyse)
  • Mois = Month(datetoanalyse)
  • Select Case Mois
  • Case 1
  • 'Jour de l'an
  • If Jour = 1 Then IsFrozen = True
  • Case 5
  • 'Fête du travail et Victoire
  • If Jour = 1 Or Jour = 8 Then IsFrozen = True
  • Case 7
  • 'Fête Nationale
  • If Jour = 14 Then IsFrozen = True
  • Case 8
  • 'Assomption
  • If Jour = 15 Then IsFrozen = True
  • Case 11
  • 'Toussaint et Armistice
  • If Jour = 1 Or Jour = 11 Then IsFrozen = True
  • Case 12
  • 'Noël
  • If Jour = 25 Then IsFrozen = True
  • Case Else
  • IsFrozen = False
  • End Select
  • End Function
  • Function IsMobile(datetoanalyse As Date) As Boolean
  • Dim Dimanche2Paques, LundiPaques, JeudiAscension, Pentecote, LundiPentecote
  • Dimanche2Paques = Paques(Year(datetoanalyse))
  • LundiPaques = Dimanche2Paques + 1
  • JeudiAscension = Dimanche2Paques + 39 ' le jeudi de la sixième semaine après Pâques
  • Pentecote = Dimanche2Paques + 49 ' le septième dimanche après Pâques
  • LundiPentecote = Pentecote + 1
  • If datetoanalyse = Dimanche2Paques Then
  • IsMobile = True
  • ElseIf datetoanalyse = LundiPaques Then
  • IsMobile = True
  • ElseIf datetoanalyse = JeudiAscension Then
  • IsMobile = True
  • ElseIf datetoanalyse = Pentecote Then
  • IsMobile = True
  • ElseIf datetoanalyse = LundiPentecote Then
  • IsMobile = True
  • Else
  • IsMobile = False
  • End If
  • End Function
  • Function Paques(annee As Integer) As Date
  • Dim G, C, C_4, E, H, K, P, Q, I, B, J1, J2, R
  • G = annee Mod 19
  • C = annee \ 100
  • C_4 = C \ 4
  • E = (8 * C + 13) \ 25
  • H = (19 * G + C - C_4 - E + 15) Mod 30
  • K = H \ 28
  • P = 29 \ (H + 1)
  • Q = (21 - G) \ 11
  • I = (K * P * Q - 1) * K + H
  • B = annee \ 4 + annee
  • J1 = B + I + 2 + C_4 - C
  • J2 = J1 Mod 7
  • R = 28 + I - J2
  • If R <= 31 Then
  • Paques = DateValue(CStr(R) & "/3/" & CStr(annee))
  • Else
  • Paques = DateValue(CStr(R - 31) & "/4/" & CStr(annee))
  • End If
  • End Function
Function IsFerie(datetoanalyse As Date) As Boolean
    If Not (IsFrozen(datetoanalyse)) Then
        If Not (IsMobile(datetoanalyse)) Then
            IsFerie = False
        Else
            IsFerie = True
        End If
    Else
        IsFerie = True
    End If
End Function

Function IsFrozen(datetoanalyse As Date) As Boolean

    Dim Jour, Mois

    Jour = Day(datetoanalyse)
    Mois = Month(datetoanalyse)

    Select Case Mois
        Case 1
            'Jour de l'an
            If Jour = 1 Then IsFrozen = True
        Case 5
            'Fête du travail et Victoire
            If Jour = 1 Or Jour = 8 Then IsFrozen = True
        Case 7
            'Fête Nationale
            If Jour = 14 Then IsFrozen = True
        Case 8
            'Assomption
            If Jour = 15 Then IsFrozen = True
        Case 11
            'Toussaint et Armistice
            If Jour = 1 Or Jour = 11 Then IsFrozen = True
        Case 12
            'Noël
            If Jour = 25 Then IsFrozen = True
        Case Else
            IsFrozen = False
    End Select
End Function

Function IsMobile(datetoanalyse As Date) As Boolean

    Dim Dimanche2Paques, LundiPaques, JeudiAscension, Pentecote, LundiPentecote

    Dimanche2Paques = Paques(Year(datetoanalyse))
    LundiPaques = Dimanche2Paques + 1
    JeudiAscension = Dimanche2Paques + 39 ' le jeudi de la sixième semaine après Pâques
    Pentecote = Dimanche2Paques + 49 ' le septième dimanche après Pâques
    LundiPentecote = Pentecote + 1
    
    If datetoanalyse = Dimanche2Paques Then
        IsMobile = True
    ElseIf datetoanalyse = LundiPaques Then
        IsMobile = True
    ElseIf datetoanalyse = JeudiAscension Then
        IsMobile = True
    ElseIf datetoanalyse = Pentecote Then
        IsMobile = True
    ElseIf datetoanalyse = LundiPentecote Then
        IsMobile = True
    Else
        IsMobile = False
    End If
        
End Function

Function Paques(annee As Integer) As Date
   
    Dim G, C, C_4, E, H, K, P, Q, I, B, J1, J2, R
        
    G = annee Mod 19
    C = annee \ 100
    C_4 = C \ 4
    E = (8 * C + 13) \ 25
    H = (19 * G + C - C_4 - E + 15) Mod 30
    K = H \ 28
    P = 29 \ (H + 1)
    Q = (21 - G) \ 11
    I = (K * P * Q - 1) * K + H
    B = annee \ 4 + annee
    J1 = B + I + 2 + C_4 - C
    J2 = J1 Mod 7
    R = 28 + I - J2
    
    If R <= 31 Then
        Paques = DateValue(CStr(R) & "/3/" & CStr(annee))
    Else
        Paques = DateValue(CStr(R - 31) & "/4/" & CStr(annee))
    End If
    
End Function



 Sources du même auteur

CALCUL DE LA DATE DE PÂQUES À PARTIR DE 1583 SELON OUDIN

 Sources de la même categorie

Source avec Zip Source avec une capture LES FONCTIONS DATE PAR L'EXEMPLE. par pasquet78
Source avec Zip Source avec une capture CALENDRIER, MODE D'EMPLOI par pasquet78
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE DIODE AVEC 3 ALARMES ET REMISE À L'HEURE par EhJoe
Source avec Zip Source avec une capture POINTEUSE HORAIRES PAR SEMAINE par VBNoob13
Source avec Zip Source avec une capture HORLOGE À AIGUILLES SIMPLEMENT DANS UN USERFORM EXCEL par bigbe

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture Source .NET (Dotnet) CALCULS DE DATES À PARTIR D'UN CALENDRIER par jcbouli
Source avec Zip Source avec une capture CALENDRIER VB6 ET HORLOGE ANALOGIQUE par enzo68290
Source avec Zip FONCTION JOURSFÉRIÉS (FIXES ET MOBILES) JUSQU'EN 2030 UTILIS... par nerim
Source avec Zip CALENDRIER SOUS VBA (EXCEL) par JM247L

Commentaires et avis

Commentaire de cuq le 29/09/2006 15:11:16

Donc LundiPentecote est férié ? faudrait savoir .... :))

Y a de l'amélioration dans l'air if annee > 2004 then LundiPentecote =0

Sauf si tu rajoutes l'option avec la case à cocher :

Moi je les !*%@#"%** ces *%$¤?'-@° du gourvernement et le lundi de pencôte je reste sous la couette.

Bon pas de polémique ... mais j'ai pas pu résister ...

Commentaire de philgriadmin le 29/09/2006 16:26:28

Je suis de ton avis pour le Lundi de pentecôte c'est pourquoi je l'ai laissé mais as tu vraiment testé mon code ? parce que ton assertion " if annee > 2004 then LundiPentecote =0 " n'est tout bonnement pas possible.
Peux tu donner un exemple plus précis ?
Merci

Commentaire de cuq le 29/09/2006 17:31:31

Non j'ai désolé j'ai pas testé désolé. La remarque était plus en passant ... J'ai juste repris un ou deux nom de tes variables pour illustrer mon propos.

Cependant si tu glisses if annee > 2004 then LundiPentecote = 0 dans IsMobile(datetoanalyse As Date) avec une déclaration de annee et ta formule annee=Year(datetoanalyse) ca doit marcher.

Commentaire de lucky2222 le 02/10/2006 14:51:44

mon avis pour le lundi de pantecote, c'est un jour ferie que l'on se fait niqué donc ca reste quand meme un jour ferier! on ne peut pas dire qu'il n'est plus ferié sinon les generation a venir vont oublier qu'on a bouffé tout ce que nos anciens on obtenus!
moi, dans ce code, comme dans un de mes programe, j'utilise au le meme code pour trouver la date de paque qui est le point de depart! je l'ai trouvé sur le site, et copier coller, je l'ai reexploité, mais je ne sais toujours pas a quoi correspond cette fonction! qui peux expliquer comment trouver la date de paque?

Commentaire de glplpmat le 02/10/2006 15:43:44

Tu devrais introduire une notion de pays pour calculer
les fetes nationales (21 juillet Belgique, 23 juin Luxembourg, ...) ;-)
et pour le lundi de paques, seul la France l'a retiré des jours férié. :-(
Sinon, une explication du calcul serait intéressante

Merci

Commentaire de lucky2222 le 02/10/2006 15:50:18

attention, le lundi de pantacote n'est pas retiré des jour feriés, il est passé en jour solidarité, nuance! ce qui fait que par exemple, si tu ne travailles pas ce jour la, on te retire des heures a recupérer! c'est le cas a air france! donc prudance dans l'appelation

Commentaire de Renfield le 19/05/2008 11:33:18 administrateur CS

Snippet tir? de la fonction Paques ici:

http://www.codyx.org/snippet_jours-feries-dimanche_355.aspx#1842

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment faire changer les date affiché par un calendrier Outlook ? [ par Nitocris ] Je cherches a faire afficher un calendrier outlook (jusque la pas de problème)Et a lui imposé un jour (d'affichage) prédéfini avant dans mon programme calendrier et conversion de date [ par didierm ] J'ai 2 questions :- sous excel 2000, comment creer un calendrier avec gestion des jours feriers- existe - il une fonction qui permet de convertir une calendrier et conversion de date [ par didierm ] J'ai 2 questions :- sous excel 2000, comment creer un calendrier avec gestion des jours feriers- existe - il une fonction qui permet de convertir une Calendrier [ par machto ] Bonjour. Je veux utiliser (pour la 1° fois) ce composant pour sélectionner une date.Quelqu'un peut-il me dire où récupérer la date cliquée et (éve CALENDRIER [ par welldone ] HELP,je voudrais en cliquant dans une cellule excel ouvrir le controle calendrier selectionner une date dans celui ci et que cette date s'affiche dans date et calendrier [ par guigui ] existe-t-il une fonction qui à partir d'une date retourne le 1er jour de la semaine concernee et le dernier jour de cette semaine?sinon j'aimerais de fonction calendrier [ par bestof2002 ] voila mon problem si je puis dire je debute en vb et est ce que quelqu'un a l'ame charitable pourrait m'aiderje voudrai utiliser la fonction calendar date présélectionné dans un controle calendar [ par pleymo21 ] BonjourJe me suis gliss&#233; un calendrier sous vb.net et j'aimerais qu'&#224; chaque fois que la page est load&#233;e...je voudrais que la date du j calendrier [ par vichenzo ] salut a tous,voial je fais un petit calendrier...g utilise cemui de vb mais g bcp de mal a le programmer. J aimerais pourvoir recupere du texte, une d Question à propos du calendrier [ par Tataye19 ] Je souhaite, pour une application, utiliser le controle Calendrier de VB6. C'est &#224; dire que j'aimerais que la date que je saisisses dans le calen


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales