A voir également:
- Delphi et les date help !
- Telecharger delphi 7 - Télécharger - Langages
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Formule excel si date supérieur à une autre date ✓ - Forum Excel
- Airpods 3 date de sortie - Guide
5 réponses
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
18 févr. 2005 à 09:23
18 févr. 2005 à 09:23
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
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
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
18 févr. 2005 à 09:40
18 févr. 2005 à 09:40
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
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
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
18 févr. 2005 à 09:44
18 févr. 2005 à 09:44
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;
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;
aldo13
Messages postés
489
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
28 avril 2005
103
18 févr. 2005 à 10:13
18 févr. 2005 à 10:13
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 )
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 )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question