Delphi et les date help !

nebul -  
 nebul -
bonjour à tous,

je voudrais récupérer la date de l'ascencion et des dimanches du mois de mai et cela pour chaque année à venir en delphi (j'utilise delphi 4 et jva me mettre sur la version 5). Si vous avez une idée...

Merci d'avance !

5 réponses

  1. random Messages postés 1612 Statut Membre 155
     
    l'ascencion est une fete mobile
    il faut calculer la date de paques et lui ajouter 40 jours
    il existe des algos de calcul de la date de paques voir google
    pour les dimanches de mai il faut choisir un jour de départ
    par exemple 1/01/2005 samedi
    ensuite on calcule le nombre de jours écoulés depuis cette date
    et on regarde le modulo 7 du chiffe obtenu
    il suffit donc de calculer quel jour tombe le 1er mai
    ensuite on cherche le premier dimanche qui suit
    et en ajoutant 7 on trouve les dimanche de mai
    je joins une fonction vb facilement tranposable qui donne paques
    Function datepaq(an As Integer) As Date
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
    Dim d As Integer
    Dim e As Integer
    Dim mars As Integer
    Dim avril As Integer
    a = an Mod 19
    b = an Mod 4
    c = an Mod 7
    d = (19 * a) + 24
    d = d Mod 30
    e = (2 * b) + (4 * c) + (6 * d) + 5
    e = e Mod 7
    mars = 22 + d + e
    avril = d + e - 9
    If mars > 0 And mars < 32 Then
    datepaq = DateSerial(an, 3, mars)
    Else
    datepaq = DateSerial(an, 4, avril)
    End If
    End Function
    0
  2. random Messages postés 1612 Statut Membre 155
     
    je joins une deuxieme fonction de date de paques
    Public Function paq(an As Integer) As Date
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
    Dim d As Integer
    Dim e As Integer
    Dim f As Integer
    Dim g As Integer
    Dim h As Integer
    Dim j As Integer
    Dim k As Integer
    Dim r As Integer
    Dim m As Integer
    Dim n As Integer
    Dim p As Integer
    a = an Mod 19
    b = an \ 100
    c = an Mod 100
    d = b \ 4
    e = b Mod 4
    f = (b + 8) \ 25
    g = (b - f + 1) \ 3
    h = ((19 * a) + b - d - g + 15) Mod 30
    j = c \ 4
    k = c Mod 4
    r = (32 + (2 * e) + (2 * j) - h - k) Mod 7
    m = (a + (11 * h) + (22 * r)) \ 451
    n = (h + r - (7 * m) + 114) \ 31
    p = (h + r - (7 * m) + 114) Mod 31
    paq = DateSerial(an, n, p + 1)
    End Function
    0
  3. random Messages postés 1612 Statut Membre 155
     
    j'ajoute deux fonctions en pascal qui pourrait t'aider
    FUNCTION FACTJOUR(J,M,A:INTEGER):longint;
    (*transforme une date en un nombre*)
    VAR FACT:REAL;
    BEGIN
    IF M IN[1,2] THEN
    BEGIN
    FACT:=(1.0*365*A)+1*J;
    FACT:=FACT+(1.0*(31*(M-1)));
    FACT:=FACT+(1.0*INT(((A-1)/4)));
    FACT:=FACT-(1.0*INT(3/4*INT(((A-1)/100)+1)));
    END
    ELSE
    BEGIN
    FACT:=(1.0*365*A)+J;
    FACT:=FACT+(1*(31*(M-1)));
    FACT:=FACT+(1.0*INT((A/4)));
    FACT:=FACT-INT(3/4*INT((A/100)+1));
    FACT:=FACT-INT(((0.4*M)+2.3));
    END;
    FACTJOUR:=round(FACT);
    END;

    function jourclair(j,m,a:integer):jou;
    (*donne en clair le nom du jour d'une date*)
    var u:integer;
    begin
    u:=factjour(j,m,a) mod 7;
    case u of

    0 : jourclair:='samedi';
    1 : jourclair:='dimanche';
    2 : jourclair:='lundi';
    3 : jourclair:='mardi';
    4 : jourclair:='mercredi';
    5 : jourclair:='jeudi';
    6 : jourclair:='vendredi';

    end;
    end;
    0
  4. aldo13 Messages postés 490 Statut Membre 103
     
    Salut ,

    Avec Delphi tu peux utiliser FormatDateTime ,avec parametre
    dddd , pour recuperer le nom des jours , et ensuite une boucle
    sur les dates.

    genre

    si FormatDateTime = dimanche
    tu ajoutes la date a un ListBox (par exemple )
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nebul
     
    jvou remercie les gars j'essaie ça de suite !
    0