Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Monatsberechnung: 30 oder 31 Tage herrausfinden (https://www.delphipraxis.net/135159-monatsberechnung-30-oder-31-tage-herrausfinden.html)

Fussel9 5. Jun 2009 17:45


Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Hi, vergeht ja kaum ein Tag ohne Probleme ^^

ich will das mein Programm aus einer Ini Werte wie gefahrene Kilometer und so ausließt und für den ganzen Monat ausrechnet, aber wie bekomme ich herraus ob der Monat 30 oder 31 Tage hat?

Hoffe irgendwer hat ne Idee :o

mkinzler 5. Jun 2009 17:50

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
EndOfMonth() aus den DateUtils

Satty67 5. Jun 2009 17:52

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
DateUtils bietet da entsprechende Funktionen, sofern >= Delphi7 (oder schon Delphi 6)

ups... 2 Minuten im Editor geschlafen

Fussel9 5. Jun 2009 17:52

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Zitat:

aus den DateUtils
sorry, aber was sind die DateUtils... bin leider noch anfänger :wink:

Ich habe TurboDelphi

Satty67 5. Jun 2009 17:54

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Datums-Hilfsmittel :mrgreen:

Uses
DateUtils;

Fussel9 5. Jun 2009 18:02

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Ok, hab mir die Hilfe mal durchgelesen:

Zitat:

Syntax


[Delphi] function EndOfAMonth(const AYear: Word; const AMonth: Word): TDateTime;


Beschreibung
EndOfAMonth gibt die letzte Millisekunde (23:59:59.999 Uhr) des letzten Tages im angegebenen Monat zurück.

Der Parameter AYear gibt das Jahr mit dem gewünschten Monat an.

Der Parameter AMonth gibt den Monat an. Gültige Werte für AMonth liegen zwischen 1 und 12.

Geben die Parameter kein gültiges Datum an, löst EndOfAMonth eine EConvertError-Exception aus.
Aber was soll ich mit der Millisekundenangabe???
Oder ist das im beispiel der Februar?

Und vor allem:
Ich habe ein EditFeld in das der benutzer das Datum selbst eingibt ich habe also höchstens einen Date wert (StrToDate) und nie den Monat einzeln und so... :coder2:

mkinzler 5. Jun 2009 18:05

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Es wird ein TDateTime der letzen Sekunde des letzen Tages zurückgeliefert.

Fussel9 5. Jun 2009 18:08

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
ja ok, das hab ich schon verstanden, aber ich will ja alle Daten abfragen die von dem aktuellen Monat kommen und ich kann doch nicht eine TDate mit einem TDateTime vergleichen oder?

BackOrifice 5. Jun 2009 18:09

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Lies ein bisschen und mach dich schlau. TDateTime ist ein Extended. Alle Tage seit dem xx.xx.xxxx sind der Ganzzahlige Anteil. Alle Sekunden an diesem Tag der Nachkommateil.

Was du suchst ist DateUtils.DaysInAMonth. Die Parameter musst du dir entsprechend selbstzusammenbasteln (Funktionen in DateUtils).

/TDate = 12345,xxx (x undefiniert)
TDateTime = 12345,12345

omata 5. Jun 2009 18:13

Re: Monatsberechnung: 30 oder 31 Tage herrausfinden
 
Alternativ kannst du auch mal deine Fingerknöchel befragen (einfache aber effektive Regel), denn die Anzahl an Tagen in einem Monat ist immer gleich (Ausnahme: Februar). Deine Frage muss also eigentlich lauten, wie ermittle ich ein Schaltjahr, um für den Monat Februar die korrekte Länge zu ermitteln.

Delphi-Quellcode:
function isSchaltjahr(jahr:integer):boolean;
begin
  Result:=(jahr mod 4 = 0) and (jahr mod 100 <> 0) or (jahr mod 400 = 0);
end;
Wenn Schaltjahr dann Februar = 29 Tage sonst 28 Tage.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Seite 1 von 2  1 2      

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