Toon posts:

[Delphi/BCB] Datum opsplitsen*

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb nu de volgende drie variabelen

AnsiString dag = Datum.SubString(0,2);
AnsiString maand = Datum.SubString(4,2);
AnsiString jaar = Datum.SubString(7,4);

IsValidDate(jaar, maand, dag);

de functie IsValidDate() accepteerd alleen maar variabelen van het type unsigned short.

ik heb echt van alles al geprobeert, maar het lukt gewoon niet om van AnsiString naar unsigned short te komen. of van char naar unsigned short (via dag.c_str() )

weet iemand hier een oplossing voor

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Moet je niet gewoon StrToInt gebruiken?

Verwijderd

Topicstarter
ik kan idd ook een int gebruiken ipv een short. THANX A BUNCH
wel een beetje dom van me :-)
maar je leert pas iets als je je fouten in kan zien

  • whoami
  • Registratie: December 2000
  • Laatst online: 24-08 16:37
Dit ging over Delphi of over C++ Builder vermoed ik? Zet dat in't vervolg ook even in je titel.

Als jouw datum in een variable van het type TDateTime of TDate zit (wat eigenlijk wel aan te raden is, bewaar datums in datum-velden, getallen in numerieke velden, etc....), kan je ook de functie DecodeDate() gebruiken:

code:
1
2
3
4
5
6
var
  Year    : Word;
  Month : Word;
  Day     : Word;
begin
  DecodeDate ( Datum, Year, Month, Day);



(En als je datum toch in een string veld zit, kan je hem alsnog naar een TDate converteren dmv de functie StrToDate() )

titel ff gemod.

https://fgheysels.github.io/


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 08:23

Tomatoman

Fulltime prutser

In Delphi is het standaarddatumtype TDateTime. Daarbij is een etmaal precies gelijk aan 1, waarbij geteld wordt vanaf 30-12-1899. De fractie van het getal is hoever je in de dag zit.

Een voorbeeld: het getal 35065,25 is 06:00 uur 's ochtends op 1-1-1996. Immers, de 35065ste dag sinds 30-12-1899 is 1-1-1996 en 0,25 is een kwart dag (dus 6 uur 's ochtends).

Een goede grap mag vrienden kosten.