AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Bei Datum Monat und Jahr ausgeben und den Wert vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Bei Datum Monat und Jahr ausgeben und den Wert vergleichen

Ein Thema von bundy · begonnen am 22. Mär 2005 · letzter Beitrag vom 22. Mär 2005
Antwort Antwort
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#1

Bei Datum Monat und Jahr ausgeben und den Wert vergleichen

  Alt 22. Mär 2005, 10:53
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:

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.
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von ggfan
ggfan

Registriert seit: 7. Feb 2005
Ort: Grafing bei München
85 Beiträge
 
Delphi 7 Personal
 
#2

Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich

  Alt 22. Mär 2005, 11:52
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.
André Prescher
42. Damit ist auch schon alles gesagt.

http://myfileadmin.aprescher.de
Dateiverwalter für Webserver
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich

  Alt 22. Mär 2005, 11:58
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;
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich

  Alt 22. Mär 2005, 14:09
Zitat von bundy:
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:

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.
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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich

  Alt 22. Mär 2005, 20:24
Ach ist das wieder umständlich.
Man kann ja auch Delphi-Referenz durchsuchenDecodeDate verwenden. Da wird das eingegebene Datum vom Typ TDateTime in seine einzelnen Komponenten Tag, Monat und Jahr aufgeteilt.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich

  Alt 22. Mär 2005, 20:37
Zitat von Binärbaum:
Ach ist das wieder umständlich.
Man kann ja auch Delphi-Referenz durchsuchenDecodeDate verwenden. Da wird das eingegebene Datum vom Typ TDateTime in seine einzelnen Komponenten Tag, Monat und Jahr aufgeteilt.

MfG
Binärbaum
Ja klar, und dann musst Du erstmal 6 Varablen deklarieren weil DecodeDate eine Procedure ist
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Bei Datum Monat und Jahr ausgeben und den Wert vergleich

  Alt 22. Mär 2005, 21:51
Zitat von Union:
Zitat von Binärbaum:
Ach ist das wieder umständlich.
Man kann ja auch Delphi-Referenz durchsuchenDecodeDate verwenden. Da wird das eingegebene Datum vom Typ TDateTime in seine einzelnen Komponenten Tag, Monat und Jahr aufgeteilt.

MfG
Binärbaum
Ja klar, und dann musst Du erstmal 6 Varablen deklarieren weil DecodeDate eine Procedure ist
Und was ist daran jetzt so schlimm? Es ist immerhin eine sichere Variante, um zu überprüfen, ob bei zwei Daten Monat und/ oder Jahr übereinstimmen. Und wenn es dir nicht gefällt, dass es eine Prozedur und keine Funktion ist, kann man das ganze ja in eine Funktion kapseln:
Delphi-Quellcode:
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;
MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz