users_user-20.html -  [VB] Savoir si un jour est ouvré ou pas (fériés + Week-End)
  1. Public Function IsVacant(ByVal dJour As Date) As Boolean 
  2. Dim dPaques As Date 
  3.     IsVacant = False 
  4.      
  5.     dPaques = CalcPaques(Year(dJour)) 
  6.     If (dJour = dPaques + 1Or (dJour = dPaques + 39Or (dJour = dPaques + 50Then IsVacant = True 
  7.     If (Day(dJour) = 1And (Month(dJour) = 1Then IsVacant = True 
  8.     If (Day(dJour) = 1And (Month(dJour) = 5Then IsVacant = True 
  9.     If (Day(dJour) = 8And (Month(dJour) = 5Then IsVacant = True 
  10.     If (Day(dJour) = 14And (Month(dJour) = 7Then IsVacant = True 
  11.     If (Day(dJour) = 15And (Month(dJour) = 8Then IsVacant = True 
  12.     If (Day(dJour) = 1And (Month(dJour) = 11Then IsVacant = True 
  13.     If (Day(dJour) = 11And (Month(dJour) = 11Then IsVacant = True 
  14.     If (Day(dJour) = 25And (Month(dJour) = 12Then IsVacant = True 
  15.      
  16.     If (Weekday(dJour) = vbSunday) Or (Weekday(dJour) = vbSaturday) Then IsVacant = True 
  17. End Function 
  18. Public Function CalcPaques(ByVal iAnnee As Integer) As Date 
  19. 'Ascension = 40 jours après pâques 
  20. 'Pentecôte = 50 jours après pâques 
  21. Dim retard As Integer
  22. Dim t As Integer 
  23. Dim a As Integer 
  24. Dim b As Integer 
  25. Dim iSiecle As Integer, iJour As Integer 
  26. Dim dPaques As Date 
  27.     iSiecle = 1 + iAnnee  100 
  28.     If (iSiecle = 20 Or iSiecle = 21Then 
  29.         a = 24 
  30.         b = 5 
  31.     ElseIf iSiecle = 22 Then 
  32.         a = 24 
  33.         b = 6 
  34.     ElseIf iSiecle = 23 Then 
  35.         a = 25 
  36.         b = 0 
  37.     End If 
  38.      
  39.     retard = (19 * (iAnnee Mod 19) + a) Mod 30 
  40.     If retard = 29 Then 
  41.         retard = 28 
  42.     ElseIf (retard = 28 And (iAnnee Mod 19) > 10Then 
  43.         retard = 27 
  44.     End If 
  45.      
  46.     t = (2 * (iAnnee Mod 4) + 4 * (iAnnee Mod 7) + 6 * retard + b) Mod 7 
  47.      
  48.     If retard + t > 9 Then 
  49.         iJour = retard + t - 9 
  50.         dPaques = DateSerial(iAnnee, 4, iJour) 
  51.     Else 
  52.         iJour = retard + t + 22 
  53.         dPaques = DateSerial(iAnnee, 3, iJour) 
  54.     End If 
  55.      
  56.     CalcPaques = dPaques 
  57. End Function
Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?