Visiteur  Droits sur la page Lecture seule  

 

Dates diverses

Pâque en formules Excel

Dimanche :

La plus courte, attention au découpage :

=DATE(An;3;22+MOD(19*MOD(An;19)+24;30)+MOD(2*MOD(An;4)+4
  *MOD(An;7)+6*MOD(19*MOD(An;19)+24;30)+5;7))

La plus juste, attention au découpage :

=DATE(An;SI((25-MOD((11*MOD(An-1900;19)+4-ENT((7*MOD(An-1900;19)+1)/19))
;29)-MOD(An-1900+ENT((An-1900)/4)+31-MOD((11*MOD(An-1900;19)+4-
ENT((7*MOD(An-1900;19)+1)/19));29);7))>0;4;3);
SI((25-MOD((11*MOD(An-1900;19)+4-ENT((7*MOD(An-1900;19)+1)/19));29)-
MOD(An-1900+ENT((An-1900)/4)+31-MOD((11*MOD(An-1900;19)+4-
ENT((7*MOD(An-1900;19)+1)/19));29);7))>0;(25-MOD((11*MOD(An-1900;19)+
4-ENT((7*MOD(An-1900;19)+1)/19));29)-MOD(An-1900+ENT((An-1900)/4)+31-
MOD((11*MOD(An-1900;19)+4-ENT((7*MOD(An-1900;19)+1)/19));29);7));31+
(25-MOD((11*MOD(An-1900;19)+4-ENT((7*MOD(An-1900;19)+1)/19));29)-
MOD(An-1900+ENT((An-1900)/4)+31-MOD((11*MOD(An-1900;19)+4-
ENT((7*MOD(An-1900;19)+1)/19));29);7))))

Ascension + 39 jours - Pentecôte + 49 jours

Dimanche de Pâques (VB)

Public Function Paques(ByVal Année As Long, Optional ByVal Lundi As Boolean = True) As Date
Dim Tmp As Long, Tmp1 As Long, Tmp2 As Long, Tmp3 As Long, lMod4 As Long
Dim lMod7 As Long, lMod19 As Long, lMod30 As Long
     Application.Volatile (True)
     lMod4 = Année Mod 4
     lMod7 = Année Mod 7
     lMod19 = Année Mod 19
     lMod30 = (19 * lMod19 + 24) Mod 30
     Tmp1 = (19 * lMod19 + 24) Mod 30
     Tmp2 = 2 * lMod4 + 4 * lMod7 + 6 * lMod30 + 5
     Tmp3 = Tmp2 Mod 7
     'Nbr jours après le 22/03
     Tmp = Tmp1 + Tmp3
     If Lundi Then
         Paques = CDate(22 & "/" & 3 & "/" & Année) + Tmp + 1
     Else
         Paques = CDate(22 & "/" & 3 & "/" & Année) + Tmp
     End If
End Function

No de semaine ISO (VB)

Attention : le calcul du No de semaine d'Excel est faux (non normé). Le remplacer par :

Public Function SemaineISO(DateExcel As Date) As Long
Dim iTmp As Long
    Application.Volatile
    DateExcel = Int(DateExcel)
    iTmp = DateSerial(Year(DateExcel + (8 - WeekDay(DateExcel)) Mod 7 - 3), 1, 1)
    SemaineISO = ((DateExcel - iTmp - 3 + (WeekDay(iTmp) + 1) Mod 7)) \ 7 + 1
End Function

Année Musulmane (VB)

Public Function Annee_Musulmane(ByVal Annee As Long) As Long
      Application.Volatile True
      Annee_Musulmane = ((Annee - 621) * 365.25) / 354.61
End Function
 
Public Function Annee_Occidentale(ByVal Annee As Long) As Long
      Application.Volatile True
      Annee_Occidentale = ((Annee * 354.61) / 365.25) + 621
End Function
 
basetech/algodates.txt · Dernière modification: 10/11/2005 18:38 (édition externe)
 
Ajouter à Netvibes      

 
Derniers changements Hébergé par www.ebsoft.org Propulsé par DokuWiki