Toon posts:

[VB 6.0] Dateadd probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit stukje voorbeeld code vooroorzaakt mijn probleem, via google en de search heb ik niets kunnen vinden :'(

Visual Basic:
1
2
3
4
5
Dim tijd as date
tijd = "23:59:52"
tijd = format(tijd,"hh:nn:ss")
tijd = dateadd("s",8,tijd)
msgbox tijd


Dit is een stukje code die ik heb gemaakt om te kijken waarom de dateadd functie het niet doet. Als ik deze code namelijk uitvoer krijg ik een msgbox die zegt 31-12-1899 maar hij zou gewoon 00:00:00 moeten weer geven. Weet iemand hoe ik dit op kan lossen ? of moet ik niet met dateadd werken ?

Verwijderd

Ten eerste : vanwaar de format ? Je zet daarmee een date naar een string om, maar door dat in een date variabele te zetten wordt het weer een date ?

Als je nu die format in je msgbox regel zet, dan krijg je netjes de gewenste uitkomst
code:
1
  msgbox format(tijd,"hh:nn:ss")

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Inderdaad. Het 'probleem' is dat je in een Date zowel alleen een tijd, als een datum/tijd-combinatie kunt opslaan. Intern is het een Double waarbij als de waarde lager dan 1 is er alleen een tijd in zit. 1 of hoger en de datum gaat meedoen. Zoals je ziet kan visual basic met datums vanaf 31-12-1899 (00:00:00) uur werken.

Als je er nog een seconde bij zou doen krijg je bij je uitvoer:

31-12-1899 00:00:01

Wat FFrenzy al zegt: als je alleen een tijd wil hebben, moet je alleen een tijd vragen, met die Format die hij aangeeft dus.

[ Voor 3% gewijzigd door Kuhlie op 20-01-2005 11:03 . Reden: kleine verduidelijking ]


Verwijderd

Topicstarter
Ok ben er uit, Hulde! _/-\o_