Newsgroup: it.comp.lang.visual-basic
Titolo: Bug clamoroso nelle funzioni CDate, DateDiff, DateAdd

Oltre ad altri bug di minore entità, che introducono degli errori di calcolo nella conta dei giorni, le funzioni delle date in VB
hanno un bug che definirei clamoroso: non riconoscono i mesi Aprile e Agosto, quando vengono immessi a lettere.
Così funziona:
CDate ("20/04/98")
Così invece no:
CDate ("20 aprile 98")
E neppure:
CDate ("20 apr 98")
Mentre per tutti gli altri 10 mesi il riconoscimento letterale funziona bene nel modo esteso e abbreviato.
Siamo arrivati al service pack 6 e ancora non si sono accorti del bug ?

Agosto, quando vengono immessi a lettere.
[SNIP]
Hmmm... esattamente in che contesto ti da problemi?
Provato con VB6 Enterprise SP4, su S.O. in italiano
Dim Test1 As Date, Test2 As Date, Test3 As Date
Test1 = CDate("20/04/98")
Debug.Print Format(CStr(Test1), "dd/mm/yyyy")
Test2 = CDate("20 aprile 98")
Debug.Print Format(CStr(Test2), "dd/mm/yyyy")
Test3 = CDate("20 apr 98")
Debug.Print Format(CStr(Test3), "dd/mm/yyyy")
risultato
20/04/1998
20/04/1998
20/04/1998
stessa cosa per Agosto...
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

Mi unisco alla conferma...a me non dà problemi
Uso VB6 SP5
Ciao
Teo
"Luca Dormio" <lucaFaV...@tinFaVa.it> ha scritto nel messaggio
news:a4qt3t$reo$1...@fe1.cs.interbusiness.it...


 stessa cosa per Agosto...
Idem su VB5 SP3 su W95, W98.
Bye, G.

 CDate ("20 apr 98")
Con il VBA di Access 2000 (VB 6.0) funzionano tutti e due, anche per
Agosto
Ciao, Alessandro
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Credo che sia un bug del S.O. e non di VB (che si appoggia al sistema
operativo per queste operazioni...)
                    Ciao
                                    Allanon

 Oltre ad altri bug di minore entità, che introducono degli errori di
calcolo nella conta dei giorni, le funzioni delle date in VB
CUT

 dico funziona!
Ovviamente anche io ho pensato che fosse un problema di impostazioni
internazionali.
Ma Blisset ha detto chiaramente che lo fa solo per Aprile e Agosto.
Ho preso ad esempio Gennaio: se in inglese si scrive Jan o January, non
dovrebbe accettare Gen o Gennaio. Così anche il francese e lo spagnolo (dove
però le differenze sono ridotte).
Alberto

Ma allora non funziona solo a me ? Ho Vb6sp5. E l'ho provato su 3 computer diversi con Win98, WinMe e WinXP.
Se vado nella finestra immediata e metto ad es.
? CDate ("2 aprile 2000")
oppure
? CDate ("2 agosto 2000"
oppure
? DateDiff ("d", "2 apr 2000", "3 ago 2000")
Mi dice formato non valido.
Se invece lo faccio con qualunque altro mese funziona, per cui non sono le impostazioni internazionali.
La stessa cosa ovviamente se faccio Test1="2 apr 1999" e poi uso Test1 in una delle 3 funzioni con le date.
Il Vb6sp5 l'ho scaricato direttamente dalla MS. Cosa può essere ?
Non lo riesco a capire davvero.
Ciao
"Luca Dormio" <lucaFaV...@tinFaVa.it> ha scritto nel messaggio news:a4qt3t$reo$1...@fe1.cs.interbusiness.it...


 ha scritto nel messaggio
news:9p6c8.15568$eD3.6...@twister1.libero.it...


 Ma allora non funziona solo a me ? Ho Vb6sp5. E l'ho CUT
Option Explicit
Private Sub Command1_Click()
List1.AddItem CDate("20/04/98")
List1.AddItem CDate("20 maggio 98")
End Sub
win XP pro VB6SP5...uttto ok...
Quindi:
hai qualche dll sbagliata!...tipo VB italiano ed Office inglese...o vers
incompatibili fra loro..
lo sai vero che queste funct...sono quelle del VBA!
...basta che tu abbia installato, dopo VB, office (con il supporto vba) che
queste son state sostituite!
Altra ragione non sembra esserci!

 Altra ragione non sembra esserci!
Quindi puň essere per l'Office XP ? Come faccio per ripristinare le funzioni delle date in VB ? Reistallo il Vb6sp5 ?

 Altra ragione non sembra esserci!
Quindi puň essere per l'Office XP ? Come faccio per ripristinare le funzioni delle date in VB ? Reistallo il Vb6sp5 ?