|
|
|
|
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 elle est pas belle, la vie ? |
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 elle est pas belle, la vie ? |
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; elle est pas belle, la vie ? |
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 ) |
jvou remercie les gars j'essaie ça de suite ! |
Résultats pour delphi et les date help !
Résultats pour delphi et les date help !
Résultats pour delphi et les date help !
Résultats pour delphi et les date help !
Résultats pour delphi et les date help !
Résultats pour delphi et les date help !