![]() |
Bei Datum Monat und Jahr ausgeben und den Wert vergleichen
Hallo Delphianer !!
Ich hab irgendwie einen Denkfehler oder absolute Ahnungslosigkeit. Ich Hab ein Datum in einer Mysql Datenbank. Bsp: Datenbank: Datum-------Upload-------Download-------SummeTransfer 20.3.2005 123233 123132 2324323242 20.3.2005 123123 123423 2343242344 Aufgabe: :arrow: Ich bekomme ein Texfile mit Daten die in diese Tabelle eingelesn gehöhrt. 1.Wenn das Datum im Textfile im gleichen Monat ist wie das Datum in der Datenbank dann muss er den Datensatz updaten. 2.Wenn das Datum im Textfile nicht im selben Monat liegt dann muss ich den Datensatz hinzufügen. meine Frage: Wie kann ich zwei Datumswerte nach Jahr und Monat vergleichen. :thumb: |
Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich
Meine Idee,
nimm das Datum und versuche mit copy() bei beiden Datumen den Tag auf einen bestimmten Wert umzuschreiben. Danach wandelst du das Ganze in DateTimeFormat um. Ist ein ziemliches Rumgebastle, sollte aber funktionieren. |
Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich
Ich hab da mal was zusammengebastelt.
Bitte um Optimierungsvorschläge
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var DatenbankMonat,DatenbankJahr,LocalMonat,LocalJahr:integer; DatenbankDatum,Localdatum:tdate; begin DatenbankDatum:=date; Localdatum:=date; DatenbankMonat:=MonthOfTheYear(DatenbankDatum); DatenbankJahr:=YearOf(DatenbankDatum); LocalMonat:=MonthOfTheYear(Localdatum); LocalJahr:=YearOf(Localdatum); if (DatenbankMonat = LocalMonat) and (DatenbankJahr = LocalJahr) then ShowMessage('Gleiches Jahr und Monat'); if (DatenbankMonat = LocalMonat) and (DatenbankJahr <> LocalJahr) then ShowMessage('Gleiches Monat anders Jahr'); if (DatenbankMonat <> LocalMonat) and (DatenbankJahr = LocalJahr) then ShowMessage('Gleiches Jahr anderes Monat'); if (DatenbankMonat <> LocalMonat) and (DatenbankJahr <> LocalJahr) then ShowMessage('anderes Jahr anderes Monat'); end; |
Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich
Zitat:
Delphi-Quellcode:
uses dateutils;
procedure TForm1.Button1Click(Sender: TObject); var dtNow, dtThen : TDateTime; begin dtThen := EncodeDate(2005,2,28); dtNow := EncodeDate(2005,3,1); // ==> 200502 <> 200503 if (YearOf(dtNow)*100 + MonthOf(dtNow)) <> (YearOf(dtThen)*100 + MonthOf(dtThen)) then ShowMessage('Monat oder Jahr unterschiedlich'); end; |
Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich
Ach ist das wieder umständlich.
Man kann ja auch ![]() MfG Binärbaum |
Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich
Zitat:
|
Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich
Zitat:
Delphi-Quellcode:
MfG
function SameYear(d1,d2: TDateTime):Boolean;
var y1, y2, dummy: Word; begin DecodeDate(d1, y1, dummy, dummy); DecodeDate(d2, y2, dummy, dummy); Result:= (y1 =y2); end; //oder halt für Jaghr und Monat function SameYearAndMonth(d1,d2: TDateTime):Boolean; var y1, m1, y2, m2 dummy: Word; begin DecodeDate(d1, y1, m1, dummy); DecodeDate(d2, y2, m2, dummy); Result:= ((y1 =y2) and (m1=m2)); end; Binärbaum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz