Format van datum wijzigen

Status
Niet open voor verdere reacties.

Gejete54

Gebruiker
Lid geworden
20 dec 2012
Berichten
13
Beste mensen, goedemiddag,

voor met automatiseren van regressietesten maak ik gebruik van een testtool in VB om een opdracht te programmeren. 1 opdracht is om van de datum van vandaag bijv. 500 dagen af te trekken en met het resultaat een veld te vullen. Dit is alsvolgt geprogrammeerd:

Function awfGenereerdDatumMinDagen(ByVal aDate as Date, aNumberOfDays as Double)
Dim myNewDate as Date
myNewDate = aDate.AddDays(aNumberOfDays)
DUAFHost.SendMessage("Nieuwe Datum : " & string.Format (myNewDate, "ddmmyyyy"))
return myNewDate
End Function

Echter bij het vullen van het veld worden de 00 (nullen) in de string niet uitgeschreven dus i.p.v. bijv. 06072012 krijg ik 672012 en tja, daarna loopt de boel natuurlijk in het 100. Wie weet wat ik verkeerd doe en wie wil mij helpen. Alvast ontzettend bedankt. Gert-Jan Troost
 
@JoZ1, bedankt voor je snelle reactie. Ik wil daar graag mee aan de slag. Als je kijkt naar mijn "Function", op welke plek zou ik die Negate-functie dan moeten plaatsen?
 
Het werkt heel simpel, gewoon een negatief aantal dagen toevoegen ;)

[cpp]Dim startDatum As Date = Date.Today
startDatum = startDatum.AddDays(-500)[/cpp]
 
Wederom, dank. Maar nu het volgende (en ter verontschuldiging vertel ik maar vast dat ik t.a.v. VB een absolute beginneling ben). Als ik naar die functie van LessThanDot kijk vermoed ik dat deze eigenlijk een andere manier is om het zelfde te bereiken, nl. het aftrekken van een x aantal dagen van de systeemdatum. Maar dat is opzich mijn probleem niet. Mijn functie rekent dat ook prima uit, bijv. today - 500 is 20 06 2011 en dat klopt. Maar de funtie presenteert het antwoord niet correct in die zin dat de eerste 0 van de maand (maar als het eerste cijfer van de dag een 0 is idem dito) niet wordt uitgeschreven. Dus i.p.v. 20062011 schrijft hij 2062011 hoewel ik string.Format (myNewDate, "ddmmyyyyy) heb meegegeven.
Ik hoop dat ik het zo een beetje beter heb uitgelegd.
 
OK, ik dacht dat het probleem aan het uitrekenen lag.
Het ligt aan de 0'en.

Volgens mij is dit dan een oplossing:

[CPP]Private Function berekenDatum(ByVal startDatum As Date, ByVal nDagen As Integer) As String
Dim retDatum As Date = startDatum.AddDays(nDagen)
Return Format(retDatum, "ddMMyyyy")
End Function[/CPP]

:)
 
OK, die ga ik proberen en ik laat je het resultat weten. Bedankt alvast.
 
No'op, helaas, ook nu wordt de 0 niet uitgeschreven. Raar. Zou ik gewoon ergens anders in de functie iets heel verkeerd gedaan kunnen hebben? (Wat een gedoe hè om een 0)
 
Niet? Bij mij werkt het wel :confused:


7HvyI.png



Weet je zeker dat je de goeie code gebruikt?
 
Hallo, ik heb jouw functie iets aan moeten passen, voor de functie volgens mij niet zo van belang, toch? Het is nu:

Function awfGenereerdDatumMinDagen(ByVal startDatum As Date, ByVal nDagen As Integer) As String
Dim myNewDate As Date = startDatum.AddDays(nDagen)
Return string.Format(myNewDate, "ddMMyyyy")
End Function

Maar helaas, de notatie blijft: 2262011.

Het rekenwerk klopt dus wel mar die verrekte 0 laat zich niet vangen. Nog tips?????
 

Bijlagen

  • Inschrijfdatum.png
    Inschrijfdatum.png
    3,4 KB · Weergaven: 28
Als je mijn post goed leest, zie je dat ik:

Format(...,...) gebruik en niet String.Format(...,...)

Daar ligt het probleem.
(dat is ook het enige wat je hebt aangepast aan mijn functie :P)
 
OK, als ik dus String. verwijder uit de regel dat krijg ik de Build error melding:
Name 'Format' is not declared.

Ik wil je trouwens wel even bedanken voor het geduld wat je met me heb. Zoals gezegd, ik ben een beginner (cursus volgt) maar ik zou zo graag e.e.a. willen doorgronden en daar ben ik nog ver bij vandaan vrees ik.
 
OK, als ik dus String. verwijder uit de regel dat krijg ik de Build error melding:
Name 'Format' is not declared.
Format is een functie uit de Microsoft.VisualBasic-namespace.
Ga eens naar My Project (in de Solution Explorer rechtsbovenin) > References > het kopje 'Imported Namespaces'
Staat Microsoft.VisualBasic daar aangevinkt? (zie plaatje)
BVGwP.png


Ik wil je trouwens wel even bedanken voor het geduld wat je met me heb. Zoals gezegd, ik ben een beginner (cursus volgt) maar ik zou zo graag e.e.a. willen doorgronden en daar ben ik nog ver bij vandaan vrees ik.
Haha ;) Graag gedaan.
Ik snap heel goed dat het in het begin verwarrend is.
 
Tja, ik vrees dat de tool die wij hiervoor gebruiken niet hierin voorziet. Ik moet daarvoor bij anderen te rade gaan. Ik ga opzoek en laat je weten wat eran gekomen is. Gr. en fijne kerstdagen.
 
De tool die jullie hiervoor gebruiken? Visual Studio?
Stuur anders als je er echt niet uitkomt je project even op, dan fix ik 't wel.

Jij ook fijne kerstdagen :)
 
@JoZ1

Beste wensen! En ja, het probleem is opgelost. Jouw bijdrage over Microsoft.VisualBasic-namespace deed de truc. Kan hem niet standaard aan de tool toevoegen maar wel importeren in het script. Was alles maar zo simpel, maar goed, wel wat van geleerd waarvoor nogmaals mijn dank.
 
OK, goed dat het is opgelost!
Ook nog de beste wensen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan