Bug / Plantage avec AddDate()

Archive.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Bug / Plantage avec AddDate()

Message par Flype »

voici 2 ou 3 bug très génant quand on calcule des dates.

Code : Tout sélectionner

;---
;--- DATE BUG REPORT (2005-05-29)
;--- 

Procedure Error()
  
  Message$ = "Nom du Module : " + Chr(10) + GetErrorModuleName()  + Chr(10) + Chr(10)
  Message$ + "Description : "   + Chr(10) + GetErrorDescription() + Chr(10) + Chr(10)
  Message$ + "Code Erreur : 0x" + Hex(GetErrorNumber()) + " [ ligne " + Str(GetErrorLineNR()) + " ]"
  
  MessageRequester("Erreur",Message$,#MB_ICONERROR|#MB_SETFOREGROUND)
  
  End
  
EndProcedure

OnErrorGosub(@Error())

;---
;--- 01-06-2005 + 18 mois = 01-12-2006       // OK
;--- 

a = Date(2005,6,1,0,0,0)
a = AddDate(a,#PB_Date_Month,18)

Debug FormatDate("%dd-%mm-%yyyy",a)

;---
;--- 01-06-2005 + 19 mois = 01-01-2007       // BUG : ( Résultat = 00-00-00 )
;--- 

a = Date(2005,6,1,0,0,0)
a = AddDate(a,#PB_Date_Month,19)

Debug FormatDate("%dd-%mm-%yyyy",a)

;---
;--- 01-01-2005 + 23 mois = 01-12-2006       // OK
;--- 

a = Date(2005,1,1,0,0,0)
a = AddDate(a,#PB_Date_Month,23)

Debug FormatDate("%dd-%mm-%yyyy",a)

;---
;--- 01-01-2005 + 24 mois = 01-01-2007       // BUG : ( Résultat = 00-00-00 )
;--- 

a = Date(2005,1,1,0,0,0)
a = AddDate(a,#PB_Date_Month,24)

Debug FormatDate("%dd-%mm-%yyyy",a)


;---
;--- 01-01-2005 + ( 33 x 1 an ) = 01-12-2038     // DANS LA DOC : from 1970 up to 2034
;--- 

a = Date(2005,1,1,0,0,0)

For i = 1 To 33
  a = AddDate(a,#PB_Date_Year,1)
Next

Debug FormatDate("%dd-%mm-%yyyy",a)

;---
;--- 29-05-2005 + ( 48 x 1 mois ) = 29-05-2007   // SERIEUX BUG ( plantage )
;--- 

a = Date(2005,05,29,0,0,0)

For i = 1 To 48
  a = AddDate(a,#PB_Date_Month,1)
Next

Debug FormatDate("%dd-%mm-%yyyy",a)
Image