![]() |
Delphi-Version: 2007
*UPDATE* ddd (Dayname) vergleichen der Date() Funktion
Hallo liebe Delphianer,
ich benötige einen Datumsvergleich, wobei ich abfrage ob Mo/Di/Mi/Do/Fr/Sa/So ist. Die SuFu hat mir sehr weitergeholfen, so dass ich u.a. auf folgendes gestoßen bin: ![]() Allerdings fand ich keine Einträge wo der Wochentagsname verglichen wird. Derzeitiger Stand:
Delphi-Quellcode:
Meiner Meinung nach ist das aber eher schlecht geeignet, da ich 1.) nicht weiß ob wirklich Mo/Di/Mi angezeigt wird oder Mon/Die/Mi/Do/Fr/So/Sa (Im Link von oben steht z.B. für Montag Mon)
curr_date := FormatDateTime('ddd', date); //Liefer Mo/Di etc zurück
if curr_date = 'Di' then [...] Also zu den 2 Fragen: 1.) Kann ich den Wochentag als Index holen (z.B. So = 0, Mo =1 etc) ? 2.) Kann man den Wochentag und die Uhrzeit in eine Variable holen UND vergleichen ? (z.B. curr_date = 'Di' AND curr_date between (08:00, 20:00) Danke im voraus fürs durchlesen und "Kopf machen" :wink: |
AW: ddd (Dayname) vergleichen der Date() Funktion
Zu 1) DateUtils.DayOfTheWeek
Zu 2) habe ich leider nicht verstanden :( |
AW: ddd (Dayname) vergleichen der Date() Funktion
Zu 1)
Es gibt DayOfWeek:
Delphi-Quellcode:
function DayOfWeek(const DateTime: TDateTime): Word;
Zu 2) Der Uhrzeitanteil in TDatetime ist in dem Nachkommateil gespeichert. Also den Vorkommateil abschneiden (mit Frac) und dann mit der Uhrzeit vergleichen. Gerade gefunden:
Delphi-Quellcode:
function TimeOf(const AValue: TDateTime): TDateTime;
Nutzt aber die besagte Frac() gibt da noch HoursBetween, MinutesBetween. |
AW: ddd (Dayname) vergleichen der Date() Funktion
Zitat:
Gibt es die Möglichkeit einer If Abfrage mehrere Abfragewerte zuzuordnen ohne das Statement immer wiederholen zu müssen ? Beispiel: Bad: if dayofweek_curr = 1 or dayofweek_curr = 2 [...] Good: if dayofweek_curr = (1 or 2) Das "Good" klappt aber leider nicht... gibt es solch eine Möglichkeit ? EDIT:// dayofweek_curr := DayOfWeek(date); if (dayofweek_curr = 3 OR 4 OR 5 OR 6) then ... klappt auch nicht in der If Abfrage... |
AW: ddd (Dayname) vergleichen der Date() Funktion
Delphi-Quellcode:
[edit] :shock: Du weißt aber, was beim Verodern herauskommt? 3 OR 4 OR 5 OR 6 = 7 [/edit]
case dayofweek_curr of
1,2: Machwas; 3: MachWasAnderes; end; |
AW: ddd (Dayname) vergleichen der Date() Funktion
Zitat:
Vergisst man die Hälfte... ___ HoursBetween war nicht gemeint sondern die Methode um die jetzige Uhrzeit zu überprüfen z.B. if time < 08:00:00 bin gerad fleißig am googlen gibt da ja einiges.. |
AW: *UPDATE* ddd (Dayname) vergleichen der Date() Funktion
Es gibt den "in" Befehl.
Delphi-Quellcode:
ist var zwischen 1 und 3 oder 6
if var in [1..3,6] then
Das ist gefährlich:
Delphi-Quellcode:
if dayofweek_curr = (1 or 2)
Denn 1 or 2 ist eine Binäroperation welche 3 ergibt. Da steht also:
Delphi-Quellcode:
if dayofweek_curr = 3
|
AW: *UPDATE* ddd (Dayname) vergleichen der Date() Funktion
Und für die Uhrzeit kannst Du DecodeTime nehmen und schauen, ob Hour < 8 ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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-2025 by Thomas Breitkreuz