begin process at 2008 08 22 01:18:30
1 229 731 membres
3 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : aide pour un petit algorithme [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (albert0)

aide pour un petit algorithme le 30/10/2004 11:50:22

albert0
Membre Club
Salut all.

voila,je voulais savoir si quelu'un peut me dire comment on fait pour calculer le nombre de Jour entre deux date donné? ( a savoir que j'ai deja fait une fonction qui me retourne les année bisextille et une function qui me retourne le nombre de jour d'un mois donné) ?

en cpp ou vb ou ada, bref peu importe le language, enfet il y a juste le pricipe qui m'interesse

voila :)

d'avance merci!

Re : aide pour un petit algorithme le 30/10/2004 12:29:09

CanisLupus
Membre Club
(Admin CS)
Salut,

Utilise :

nbJours = DateDiff("d", date1, date2)

sachant que si date2 < date1 le résultat est négatif.

Cordialement, CanisLupus

Re : aide pour un petit algorithme le 30/10/2004 12:29:14

cboulas
Membre Club
Pour calculer la différence entre 2 dates tu peux utiliser la méthode DateDiff(Type,Date1,Date2).

"Type" est le format que tu recherche exemple en jour, en mois, ou en semaines, pour jour utilise "d", pour mois : "m", etc...

Chris...
Web : Firstruner - eMail : Support

Re : aide pour un petit algorithme le 30/10/2004 12:32:48

CanisLupus
Membre Club
(Admin CS)
sinon, un simple nbjours = date1 - date2 ça marche aussi.

Cordialement, CanisLupus

Re : aide pour un petit algorithme le 30/10/2004 12:37:44

albert0
Membre Club
hmm oui ok,

mais enfet ce que j'aurai aimer c'est LE PRICINPE

et pas une fonction deja faite (datedif..)


:)

Re : aide pour un petit algorithme le 30/10/2004 12:42:13

cboulas
Membre Club
il faut convertir les dates en jours, puis ensuite faire le calcul voulus.

Chris...
Web : Firstruner - eMail : Support

Re : aide pour un petit algorithme le 30/10/2004 12:43:15

ShareVB
salut

il y a surement d'autre méthode mais j'en vois deux :
- calculer le jour de l'année des deux dates puis soustraction
- calculer la date julienne puis faire la différence

Public Function DiffJours(DatePG As Date, DatePP As Date) As Double
Dim a As Double, b As Double
a = JJ(DatePG)
b = JJ(DatePP)
DiffJours = a - b
End Function

Public Function JJ(Dates As Date)
Dim y As Long, m As Long, DDdd As Double
Dim YYYY As Long, MM As Long
Dim a As Double, b As Double

YYYY = year(dates)
mm = month(dates)
dddd = day(dates)

If MM <= 2 Then y = YYYY - 1: m = MM + 12 Else y = YYYY: m = MM
If Dates >= 1582.1015 Then
a = y \ 100
b = 2 - a + a \ 4
End If

If y = Abs(y) Then
JJ = Int(365.25 * y) + Int(30.6001 * (m + 1)) + DDdd + 1720994.5 + b
Else
JJ = Int(365.25 * y) + Int(30.6001 * (m + 1)) + DDdd + 1720994.5
End If
End Function

Public Function JourAnnée(dat As Date) As Integer
Dim I As Integer
I = Year(dat)
If (I Mod 400 = 0) Or ((I Mod 100 <> 0) And (I Mod 4 = 0)) Then
JourAnnée = Int((275 * Month(dat)) / 9) - Int((Month(dat) + 9) / 12) + Day(dat) - 30
Else
JourAnnée = Int((275 * Month(dat)) / 9) - (2 * Int((Month(dat) + 9) / 12)) + Day(dat) - 30
End If
End Function

voilà

ShareVB

Re : aide pour un petit algorithme le 30/10/2004 12:46:00

ShareVB
salut

j'ai oublié de dire que ces formules viennent d'un livre d'astronomie pour ordi de Jean Meeus... c'est pas simple mais le principe est là

ShareVB

Re : aide pour un petit algorithme le 30/10/2004 12:46:37

Gobillot
Le principe c'est de transformer chaque date en quantième par rapport au 01.01.1900 en tenant compte des années bissextiles, c'est ce que fait VB, ensuite il suffit de faire la différence pour obtenir un nombre de jours.

Daniel

Re : aide pour un petit algorithme le 30/10/2004 12:58:27

CanisLupus
Membre Club
(Admin CS)
Bon, je vois pas le prob et pourquoi faire un super algo pour une différence entre 2 dates.
Les dates sont au format Double, donc date1-date2 (ou cdbl(date1)-cdbl(date2)) donne le même résultat à savoir le nombre de jours d'écart.
Les heures, minutes, secondes sont représentées dans la partie décimale.
le 30/10/2004 = 38290 et le 30/12/1899 = 0 par exemple.

Cordialement, CanisLupus


[Page 1 Page 2]
Classé sous : aide, nombre, jour, donné, algorithme

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS