AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl Tage im Monat

Ein Thema von Susanne · begonnen am 14. Mär 2009 · letzter Beitrag vom 14. Mär 2009
Antwort Antwort
Seite 2 von 4     12 34      
IIIMADDINIII
(Gast)

n/a Beiträge
 
#11

Re: Anzahl das im Monat

  Alt 14. Mär 2009, 11:40
warum kann man nicht das mit dem schaltjahr so leicht herausfinden??
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Anzahl das im Monat

  Alt 14. Mär 2009, 11:42
Zitat von IIIMADDINIII:
warum denn nicht??
Warum das Rad neu erfinden? Zudem ist der Algorithmus etwas komplizierter (Schaltjahre usw)
@Susanne: Gibt es vielleicht eine gleichnamige Funktion aus einer anderen Unit als DateUtils, welche vorher eingebunden wird?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Anzahl das im Monat

  Alt 14. Mär 2009, 11:43
Keine Ahnung, was du falsch machst, aber bei mir funktioniert das:
Delphi-Quellcode:
uses
  DateUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  days: Cardinal;
begin
  days := DaysInMonth(now);
  ShowMessage(IntToStr(days));
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Alt 14. Mär 2009, 11:47     Erstellt von mkinzler
Dieser Beitrag wurde von mkinzler gelöscht. - Grund: Wurde durch Editierung überflüssig
Alt 14. Mär 2009, 11:48     Erstellt von lbccaleb
Dieser Beitrag wurde von mkinzler gelöscht. - Grund: Bezieht sich auf dekaktivierten Beitrag
Alt 14. Mär 2009, 11:51     Erstellt von Sunlight7
Dieser Beitrag wurde von mkinzler gelöscht. - Grund: Bezieht sich auf deaktivierten Beitrag
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#14

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:51
ok, man sollte den Wert vielleicht auch aus der Funktion wieder zurückgeben, sobald ich dies an result übergebe funktioniert es auch.

Trotzdem vielen Dank für eure Hilfe. Ich hab vermutet, es musste irgendeine "Kleinigkeit" sein.
Susanne
  Mit Zitat antworten Zitat
IIIMADDINIII
(Gast)

n/a Beiträge
 
#15

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:59
sonst dieses script hätte auch funkitioniert
Delphi-Quellcode:
function TForm1.getdaysinmonth(date: TDATETIME): integer;
const
   monthday: array[1..12] of integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
if strtoint(formatdatetime('m', date)) <> 2 then
begin
  result := monthday[strtoint(formatdatetime('m', date))];
end
else
begin
  if round(strtoint(formatdatetime('yyyy', date)) / 4) = strtoint(formatdatetime('yyyy', date)) / 4 then result := 29
  else result := 28;
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#16

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 12:02
Zitat von IIIMADDINIII:
sonst dieses script hätte auch funkitioniert
Nein, wie schon erwähnt ist nicht jedes 4 Jahr ein Schaltjahr
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
IIIMADDINIII
(Gast)

n/a Beiträge
 
#17

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 12:03
seit wann denn das
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 12:04
Noch mal, es reicht nicht zu überprüfen ob ein Jahr durch vier Teilbar ist, um herauszufiden, ob es sich ume ine Schaltjahr handelt:
Zitat:
Die vorherige julianische Schalttagsregelung wurde gleichzeitig dahingehend modifiziert, dass in alle Jahre, die nach Division durch vier eine natürliche Zahl ergeben, der 29. Februar als Schalttag eingefügt wird. Ausgenommen von dieser Schaltjahresregelung sind volle Jahrhunderte, die nicht glatt durch 400 teilbar sind.
Zitat von IIIMADDINIII:
seit wann denn das
Seit wir vom Julianischen Kalender zum Gregorianischen umgestellt haben. Und das war nicht erst gestern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
IIIMADDINIII
(Gast)

n/a Beiträge
 
#19

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 12:07
dann fügt man das einfach mit hinzu
Delphi-Quellcode:
function TForm1.getdaysinmonth(date: TDATETIME): integer;
const
   monthday: array[1..12] of integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
if strtoint(formatdatetime('m', date)) <> 2 then
begin
  result := monthday[strtoint(formatdatetime('m', date))];
end
else
begin
  if (round(strtoint(formatdatetime('yyyy', date)) / 4) = strtoint(formatdatetime('yyyy', date)) / 4) and not(round(strtoint(formatdatetime('yyyy', date)) / 400) = strtoint(formatdatetime('yyyy', date)) / 400) then result := 29
  else result := 28;
end;
end;
wo ist das problem??
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 12:08
@IIIMADDINIIIein Code hat mehrere Probleme:
1. Parametername Date: Ist auche ien Funktion. Es ist nicht sichergestellt, das der richtige Wert verwendet wird.
2. Ablage der Werte in einem array ist überflüssig.
3. Wandlung DateTime->String->Integer ist aufwendig besser gleich in einen Integer wandeln (DecodeDate())
4. Der Algorithmus ist komplexer:
Wenn durch 4 teilbar aber nicht durch 100 (nur wenn durch 400 teilbar sind)
1900 war kein Schaltjahr aber 2000.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 08:05 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