LLpresident Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 wie kann ich es schaffen einen zeitwert mit einem string zu vergleichen.hier das beispiel wie ichs mir denke wies aber nicht funktioniert: edtPin -> Text =" "; Start = Now (); if(Start < (TDateTime) 0.25) { Start = (TDateTime) 0.25; } else { inputTime = Start; } TimeA = Start; start = 1; Zitieren
Klotzkopp Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Aus Deinem Code werde ich nicht schlau. Was meinst Du mit 0.25? Auf jeden Fall kannst Du auf einer Win32-Plattform einen Zeit-String über den VARIANT-Umweg in einen SYSTEMTIME konvertieren. SYSTEMTIME st; VARIANT var; WCHAR* pszBeispiel = L"17.12.2001 10:43:00"; VariantInit( &var ); var.vt = VT_BSTR; var.bstrVal = ::SysAllocString( pszBeispiel ); VariantChangeType( &var, &var, 0, VT_DATE ); VariantTimeToSystemTime( var.date, &st ); VariantClear( &var ); Danach steht die Zeit in st. Sicherheitshalber solltest Du den Rückgabewert von VariantChangeType abfragen. Zitieren
LLpresident Geschrieben 17. Dezember 2001 Autor Geschrieben 17. Dezember 2001 eh? he? also:ich will die aktuelle uhrzeit verrgleichen und wenn es noch nicht 6 uhr(0.25) ist soll anstadt der systemzeit(Start) 6 uhr angezeigt werden. Zitieren
Klotzkopp Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Ich kenne keinen Zeit-Datentyp, der 6 Uhr als 0.25 darstellt. Hast Du Dir den selbst definiert :confused: Hast Du Now() selbst geschrieben? Willst Du den veränderten Zeitwert nur anzeigen, oder wird damit später noch was anderes gemacht? Zitieren
DocMabuse Geschrieben 17. Dezember 2001 Geschrieben 17. Dezember 2001 Warum nutzt Du einen cast auf TDateTime und nimmst nicht sofort ein Objekt dieses Typs? Du erstellst ein Objekt der Klasse TDateTime und initialisierst sie mit "6 Uhr" (die Syntax muss Du nachschauen). Danach vergleichst Du einfach die Variable start mit diesem Objekt. So könnte es doch gehen, oder nicht? DocMabuse Daragon Zitieren
LLpresident Geschrieben 17. Dezember 2001 Autor Geschrieben 17. Dezember 2001 bin neu und hab nich so viel ahnung davon.aber mir wurde jetzt gezeigt wies geht.siht wie folgt aus: edtPin -> Text =" "; Start = Now (); double d = Start; double e = d - floor(d); if(e < 0.25) { d = floor(d) + 0.25; inputTime = d; } else { inputTime = Start; } TimeA = Start; start = 1; und den 0.25 wert habe ich aus der hilfe.bedeutet 1/4 des tages also 6h. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.