DateTime vergleichen (war: Date Time)
-
Hallo,
ich hab ein Programm geschrieben, das nur Dateien kopieren soll, die zwischen einem bestimten zeitraum erstellt wurden. z.B.14.05.2000 - 07.06.2002
Wenn ich jetzt aber dateien kopieren will, die ich heute erstellt habe und schreibe: 06.12.2004-24.08.2005, dann kopiert er nur die dateien bis zum 23.08.2005 , Warum?Mein Code sieht folgendermaßen aus:
TDateTime FileDate = FileDateToDateTime(sr.Time); if(FileDate >= DateTimePicker1->DateTime && FileDate <= DateTimePicker2>DateTime) //usw.....Edit:
Bitte aussagekräftige Überschriften wählen. danke!
-
if(FileDate >= DateTimePicker1->DateTime && FileDate <= DateTimePicker2>DateTime)es müsste doch wohl so aussehen:
if(FileDate >= DateTimePicker1->DateTime && FileDate <= DateTimePicker2->DateTime)war wahrscheinlich nur ein Schreibfehler, aber was ist denn wenn du das ganze mit dem debugger durchgehst? was macht er dann an der Stelle (wenn FileDate <= DateTimePicker2->DateTime eintritt)
mfg
Tom
-
War ein schreibfehler, aber in meinem Programm steht es richtig
-
Hallo
Kann den Fehler nicht nachvollziehen. Wenn ich ein Testprogrammm mit 3 DateTimePickern und folgender Überprüfung schreibe
if(DateTimePicker1->DateTime >= DateTimePicker2->DateTime && DateTimePicker1->DateTime <= DateTimePicker3->DateTime) Caption = "Dazwischen"; else Caption = "Nicht dazwischen";wird der Wert aus DateTimePicker1 auf den bereich zwischen DateTimePicker2 und ...3 inklusive der oberen Grenze getestet.
bis bald
akari
-
TdateTime hat auch immer eine Uhrzeit, auch wenn man nur Datum bestückt. Man sollte die Uhrzeit auf 0 setzen.
-
Hallo
achso, klar. Bei FileDate ist auch immer noch die Uhrzeit dabei. Ist aber kein Problem, die kann man einfach so rausfiltern
TDateTime FileDate = int(FileDateToDateTime(sr.Time));bis bald
akari
-
Es geht trotzdem nicht,
mein Quelltext sieht momentan so aus:void __fastcall TForm1::Button1Click(TObject *Sender) { Edit3->Text=Edit1->Text + Edit4->Text + "*.*"; TSearchRec sr; int a=0; int b=0; bool c=false; int iAttributes = 0; iAttributes |= faReadOnly * CheckBox1->Checked; iAttributes |= faHidden * CheckBox2->Checked; iAttributes |= faSysFile * CheckBox3->Checked; iAttributes |= faVolumeID * CheckBox4->Checked; iAttributes |= faDirectory * CheckBox5->Checked; iAttributes |= faArchive * CheckBox6->Checked; iAttributes |= faAnyFile * CheckBox7->Checked; if (FindFirst(Edit3->Text, iAttributes, sr) == 0) { do { if ((sr.Attr & iAttributes) == sr.Attr) { TDateTime FileDate = int(FileDateToDateTime(sr.Time)); // TDateTime FileDate = FileDateToDateTime(sr.Time); if(FileDate >= DateTimePicker1->DateTime && FileDate <= DateTimePicker2->DateTime) { ListView1->Items->Add(); ListView1->Items->Item[a]->Caption = sr.Name; ListView1->Items->Item[a]->SubItems->Text = FileDate; a++; Edit5->Text = Edit1->Text + Edit4->Text + sr.Name; ListView2->Items->Add(); ListView2->Items->Item[b]->Caption = Edit5->Text; b++; Edit7->Text = (Edit2->Text + "\\"); if(!MoveFiles(Edit5->Text, Edit7->Text )) c=true; else { ShowMessage("Fehler aufgetreten !"); FindClose(sr); } } } } while (FindNext(sr) == 0); FindClose(sr); if (c=true); ShowMessage("Verschieben erfolgreich!"); } }
-
Das mit der Zeit trifft auch auf DateTimePicker1->DateTime zu.
-
Hää?
das kapier ich jetzt nit?
