Vraag & Antwoord

Programmeren

[VB.NET]Probleem met splitsing in datum en tijd in dtpicker

7 antwoorden
  • Beste mensen, Ik ben een newbie op gebied van programmeren, en heb het volgende porbleem: (in gebruik VB.Net) Op een form heb ik 2 dtpickers. De een heeft customformat dd-MM-yyyy, de ander is ingesteld als Time. In het form zie ik ook keurig die formaten terug. In mijn code haal ik met .value,ToString van beide de waardes op die de gebruiker heeft ingesteld, en plak die aan elkaar. Als ik dn die string veer omzet naar een datum (met CDate) dan krijg ik een foutmelding dat de string niet omgezet kan worden naar een datum. Het lijkt ook wel als ik de code doorloop gedurende het testen dat de value van dtpicker1 en dtpickers de datum + tijd hebben, ipv. de datum in dtpicker 1 en de tijd in dtpicker2. Is het mogelijk om de datum en tijd uit elkaar te rafelen in een dtpicker en ze op deze manier aan elkaar te plakken? Enige hulp zou welkom zijn! Groeten, Ruud van Gurp
  • De "Value" property geeft een "DateTime" object terug, daar kan je dan weer de "Date" en de "Time" van opvragen. Je moet dus niet de boel eerst naar string omzetten, maar werken met hetgeen het framework je aanbiedt...
  • Dank je wel voor je antwoord. Ik heb inderdaad gezien dat als je achter value een punt zet er een groot aantal propertys tevoorschijn komt. Daar staat dat bij, en de variabele geeft dan inderdaad de gekozen datum als waarde aan. Echter: er is geen property Time; alleen TimeofDay en de onderdelen Hour, Minutes, Seconds en Milliseconds. Als ik het goed gelezen en begrepen heb geeft TimeOfDay de tijd van dat moment terug, niet de ingevoerde tijd. Dus volgens mij heb ik dan wel de datum, maar niet de tijd. Is het mogelijk om de uren, minuten en seconden aan elkaar te plakken? Dan ben ik al een heel eind verder, denk ik.... Alvast bedankt voor je hulp!
  • [quote:701c14032d="ruudtb205"]Ik heb inderdaad gezien dat als je achter value een punt zet er een groot aantal propertys tevoorschijn komt. [/quote:701c14032d] Als je dan naar de properties scrollt die beginnen met een "t", en dan vind je ToLongTimeString. Die doet precies wat je nodig hebt.
  • [quote:2c49015082]Bill Gates schreef: Je moet dus niet de boel eerst naar string omzetten[/quote:2c49015082] Volgens mij zet ToLongTimeString de tijd weer in een string, die ik dan zou moeten omzetten met Cdate. Of heb ik de inhoud van ToLongTimeString verkeerd geinterpreteerd? Ik blijf natuurlijk een beginner op dit gebied, maar is dat dan niet een beetje omslachtig? :roll:
  • [quote:278aa6fcfc="ruudtb205"]Volgens mij zet ToLongTimeString de tijd weer in een string, die ik dan zou moeten omzetten met Cdate. Of heb ik de inhoud van ToLongTimeString verkeerd geinterpreteerd? Ik blijf natuurlijk een beginner op dit gebied, maar is dat dan niet een beetje omslachtig? :roll:[/quote:278aa6fcfc]Excuus, ik had beter moeten lezen. Als ik het goed begrijp wil je een DateTime object, die de datum van dtpicker1, en de tijd van dtpicker2 bevat. En dat kun je op deze manier doen: [code:1:278aa6fcfc] Dim dtresultaat As DateTime dtresultaat = New DateTime(dtpicker1.Year, dtpicker1.Month, dtpicker1.Day, dtpicker2.Hour, dtpicker2.Minute, dtpicker2.Second) [/code:1:278aa6fcfc] En dan heb je de datum van dtpicker1, plus de tijd van dtpicker2 in een nieuw DateTime object. En nu maar hopen dat ik het nu wel goed begrepen heb :wink:
  • :D Dat ziet er heel goed uit; ik ga dit vanavond meteen uitproberen. Ik leer hier in ieder geval weer een heleboel van! Hartelijk dank voor de hulp, ik zal morgen posten als het gelukt is!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.