Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi (Win) Funktion welche Tages-/Monatswechsel ausgibt (https://www.delphipraxis.net/9901-win-funktion-welche-tages-monatswechsel-ausgibt.html)

Praktikant 7. Okt 2003 13:13


(Win) Funktion welche Tages-/Monatswechsel ausgibt
 
und zwar wollte ich frage ob windows bei einem Tages oder Monatswechsel irgend was setzt was ich in delphi leicht abfragen kann und so eine function auslösen kann.

Hat mit meiner logdatei zu tun, sobald ein neuer monat startet, soll gleich eine neue Tabelle erstellt werden. Oder muss ich wie schon mein logfile.append befehl zu jeder Aktion noch eine Datumsabfrage dazuschreiben?

Hoffe jmd. hat verstanden worauf ich hinaus will

FriFra 7. Okt 2003 13:24

Re: (Win) Funktion welche Tages-/Monatswechsel ausgibt
 
Ich denke, Du wirst um einen einfachen Datumsvergleich nicht herumkommen... Nimm einfach eine globale Vaiable welcher Du nach jedem Speichern eines Logeintrags das aktuelle Datum ( Date ) zuweist. Dann brauchst Du vor dem Speichern nur noch diese Variable mit dem aktuellen Datum zu vergleichen und entsprechend darauf zu reagieren...

Tonic1024 8. Okt 2003 08:09

Re: (Win) Funktion welche Tages-/Monatswechsel ausgibt
 
Moin...

Versuch mal ob dir das weiter hilft...

Delphi-Quellcode:
procedure THauptForm.RbMonatClick(Sender: TObject);
var Datum: TDate;
var Year, Month, Day: Word;
begin
  if DateTouched=1 then
    Datum:=Datum_von.Date
  else
    Datum:=Datum_bis.Date;

  DecodeDate(Datum, Year, Month, Day);
  Day:=1;
  Datum:=EncodeDate(Year,Month,Day);
  Datum_von.Date:=Datum;
  DecodeDate(Datum, Year, Month, Day);
  if Month = 12 then
    Month := 1
  else
    Month:=Month+1;

  Day:=1;
  Datum:=EncodeDate(Year,Month,Day);
  Datum:=Datum-1;
  Datum_bis.Date:=Datum;

  BtnShow.SetFocus;
end;
Diese Prozedur macht zwar was völlig anderes aber kann dir vielleicht einen Hinweis zur Handhabung geben. Ich habe hier zwei DateTimePicker und stelle sie auf genau einen Monat ein (1. - letzter des Monats).

Wenn Du jetzt für dein problem das Datum Decodest, dann kannst du schauen ob Day = 1. Dann sollte in der regel ein neuer Monat angefangen haben. Wenn dein Prog nicht jeden Tag startet und loggt, dann solltest du dir den Monat irgendwo "merken" und lieber schauen ob der sich geändert hat.

Einfacher gehts bald nicht... :lol:


[EDIT]
Achso... das aktuelle Datum bekommst du so:

Delphi-Quellcode:
DecodeDate(Now, Year, Month, Day)

[/EDIT]

Bis denne...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 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