AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Anzahl Tage im Monat

Ein Thema von Susanne · begonnen am 14. Mär 2009 · letzter Beitrag vom 14. Mär 2009
Antwort Antwort
Seite 3 von 4     123 4   
Benutzerbild von Luckie
Luckie

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

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11: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
 
#2

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11: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.873 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11: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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:10
Dafür gibt es IsLeapYear, da wird das berücksichtigt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
IIIMADDINIII
(Gast)

n/a Beiträge
 
#5

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:11
was macht denn dieses isleapptyear?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:13
Zitat von IIIMADDINIII:
was macht denn dieses isleapptyear?
Gibt zurück ob das jahr ein Schaltjahr (leap year) ist
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:13
Aus der SysUtils.pas vom BSD2006:
Delphi-Quellcode:
function IsLeapYear(Year: Word): Boolean;
begin
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#8

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:13
Das sagt Dir, ob es sich um ein Schaltjahr handelt. F1 ist übrigens eine sehr nützliche Taste, die darf man gerne mal benutzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:14
Zitat von IIIMADDINIII:
wo ist das problem??
Das sitzt vor Deinem Rechner

Sicherlich ist das Thema "Tage im aktuellen Monat" nur eine Kleinigkeit. Ich empfehle Dir trotzdem mal, über folgende Punkte nachzudenken:

- Warum das Rad neu erfinden?
- Warum selber Code schreiben (Zeitaufwand) für ein Problem das längst gelöst ist?
- Warum selber Code schreiben wenn gut getesteter Code bereits mitgeliefert wird?

Wenn Du Englisch kannst oder zumindest ein englisch-deutsches Wörterbuch bedienen kannst, dann schau Dir mal eine meiner Lieblingswebsites an
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Anzahl Tage im Monat

  Alt 14. Mär 2009, 11:14
Nur wenn man diese Funktion verwendet, bindet man ja DateUtils ein, dann kann man gleich DayInMonth() verwenden
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:41 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