Uhrzeit/Datum String zeicheweise aufteilen

SebastianHL

Mitglied
Hi,

ich möchte zwei string Zeichenketten "23.03.2005 15:33:35" miteinander vergleichen und das die Differenztage/minuten bestimmen um einen coutdown zähler auf ein bestimmtes Datum zu bekommen. Ich habe jetzt das Aktuelle Datum in einen Edit Feld und das Ziel Datum in einen Zweiten. Jetzt mochte ich die beiden Strings Zeichenweise aufteilen um die einzelnen Zeichen miteinander zu vergleichen.

Kann mir da jemmand weiterhelfen ?


Gruß
Sebastian
 
moin


Schön das wir wissen von welchem Typ der String ist!
Ich frag weil es spezielle Funktionen für String Typen/klassen gibt.

Du wirst ihn aufjedenfall aufteilen müssen, was aber nciht schwer ist wenn das Datum immer im gleichen Format ist.


mfg
umbrasaxum
 
hi,

den type kann ich doch beliebig verändern.

ich habe die Zeit mit :

Code:
TDateTime *TIME = new TDateTime();
*TIME = TIME->CurrentDateTime();
Edit1->Text = TIME->DateTimeString();

eingelesen.

Das Format ist immer gleich "30.06.2005 18:00:00"
Gruß
Sebastian
 
moin


Aha du benutzt also den Boland, das hättest du mal mit angeben sollen!
Beim MSVC hätte ich die CString Klasse genommen, die bringt eigentlich alles nötige für sowas mit. Ich weiss aber nciht was der Borland da geeignetes mitbringt.

Oder man packt das ganze in ein char Array und macht das dann von Hand, das wäre auch kein großer Akt da das Format ja immer gleich ist.


mfg
umbrasaxum
 
Bei MSVC würde ich direkt die CDateTime-Klasse verwenden und mir den mühseligen Vergleich von Strings sparen. Auch das Berechnen von Zeitspannen ist damit möglich. Vermutlich bieten Borlands Zeitklassen ähnliche Funktionen.
 
das problem ist das ich die richtige funktion schon den ganzen tag suche und irgendwie sei es die borland hilfe oder google nichts finde !


Es muß doch ne möglichkeit geben die einzelnen Zeichen einzelnd auszuwerten.
 
moin


Klar würde das gehen.

Code:
char *szDatum = "23.03.2005 15:33:35";
char temp[3};

int tag;

temp[0] = szDatum[0];
temp[1] = szDatum[1];
temp[2] = '\0';

tag = atoi(temp);

Nun hast du in tag den tag als Zahl.
Ist nciht elegant gelöst, besonders nciht wenn man alles so machen würde, aber im Prinzip liesse sich das so machen.


mfg
umbrasaxum
 
hi !


ja danke - die Info habe ich gebraucht ! Jetzt noch ein bißchen rumtüfteln und dann läuft das programm hoffentlich !


danke nochmal
Sebastian
 
ich habe noch ein kleines problem.

Code:
char *szDatum = "23.03.2005 15:33:35";

szDatum mußte den wert aus einen Editfeld auslesen da sich der Wert ständig andert (aktuelle zeit) wenn ich das zuorden will

Code:
char *szDatum;
szDatum = Edit1->Text;

sagt er immer :

[C++ Fehler] Unit1.cpp(29): E2034 Konvertierung von 'AnsiString' nach 'char *' nicht möglich


wenn ich das ganze folgendermaßen ändere :


Code:
AnsiString *szDatum;
szDatum = Edit1->Text;

sagt der Compiler :

[C++ Fehler] Unit1.cpp(29): E2034 Konvertierung von 'AnsiString' nach 'AnsiString *' nicht möglich


wie kann das den angehen ? da muß er doch garnichts Konventieren.


Was kann man denn da machen?

Gruß
Sebastian
 
Zurück