AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten aller Donnerstage im Monat
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aller Donnerstage im Monat

Ein Thema von Neutral General · begonnen am 3. Jan 2010 · letzter Beitrag vom 4. Jan 2010
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#21

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:32
@Wolfgang: Dann weißt du auch dass mir (d)ein Delphi Code absolut nichts nutzt?
In Delphi könnte ich mir sone Funktion auch schreiben. Aber es geht darum, dass ich keine Ahnung habe wie ich es in SQL machen soll

@himitsu: Es gibt kein 'datumsfeld'.. Das haben mkinzler und ich schon mehrmals versucht zu erklären
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#22

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:36
wie jetzt,
du hast keine Tabelle und willst von der DB nur jeweils das Datum mit einem bestimmten Wochentag aus dem Nichts bekommen?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#23

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:47
Zitat:
Der Titel ist etwas komisch. Also was ich gerne hätte ist, eine Query, die mir die Daten von z.B. jedem Donnerstag eines Monats zurückliefert...
Was wird denn geliefert?
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#24

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:48
Zitat von Neutral General:
@Wolfgang: Dann weißt du auch dass mir (d)ein Delphi Code absolut nichts nutzt?
In Delphi könnte ich mir sone Funktion auch schreiben. Aber es geht darum, dass ich keine Ahnung habe wie ich es in SQL machen soll
Du versuchst jetzt auf Biegen und Brechen, das mit SQL umzusetzen. Wozu? In derselben Zeit hättest du die Funktion fünfmal in Delphi implementiert.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:49
Dirty hack:

SQL-Code:
CREATE OR ALTER PROCEDURE WOCHENTAGEEINESMONATS (
    monat smallint,
    wtag smallint,
    jahr integer)
returns (
    datum date)
as
declare variable m smallint;
begin
  select extract( weekday from cast ( :jahr || '.' || :monat || '.01as date)) from rdb$database into :m;
  m = MOD( :wtag + :m - 2, 7);
  while (:m <= 31 /* mit berechneten Maxdatum des Monats ersetzen */) do
  begin
      datum = cast( :jahr || '.' || :monat || '.' || m as date);
      m = :m + 7;
      suspend;
  end
end
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#26

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:52
...
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#27

Re: Daten aller Donnerstage im Monat

  Alt 3. Jan 2010, 16:59
ist Käse wenn man nicht lesen kann

alex
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#28

Re: Daten aller Donnerstage im Monat

  Alt 4. Jan 2010, 13:41
Hi,

Danke an alle und vorallem an mkinzler und omata die sich viel Mühe gemacht haben

Ich wollte das ursprünglich über SQL lösen weil ich diese Daten in FreeReport brauchte und es eben um einiges einfacher ist die Daten in SQL mitzuselektieren als sie in Delphi noch mühsam in die Datensätze einfzufügen. Habe mich allerdings jetzt doch dafür entschieden die Berechnung der Wochentage in Delphi durchzuführen. Für die Leute dies interessiert poste ich hier jetzt die Schlüsselfunktion die die Daten aller (z.B.) Donnerstage im Januar des aktuellen Jahres in eine TList<TDate> schreibt.

Delphi-Quellcode:
procedure AddWochentage(AMonat, AWochentag: Byte; ADestList: TList<Date>);
var start: TDateTime;
    i: Integer;
begin
  start := EncodeDate(YearOf(now),AMonat,1);
  for i := 0 to DaysInMonth(start) - 1 do
  begin
    if DayOfWeek(start)-1 = AWochentag then
      ADestList.Add(start);
    start := IncDay(start);
  end;
end;

// Aufruf:
var AList: TList<TDate>;
begin
  // .. AList erstellen ..
  AddWochentage(1,4,AList);
end;

// Ergebnis:
// - 07.01.10
// - 14.01.10
// - 21.01.10
// - 28.01.10
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#29

Re: Daten aller Donnerstage im Monat

  Alt 4. Jan 2010, 14:00
man könnte es notfalls noch etwas kürzen
Delphi-Quellcode:
procedure AddWochentage(AMonat, AWochentag: Byte; ADestList: TList<Date>);
var start: TDateTime;
    i: Integer;
begin
  start := EncodeDate(YearOf(Now), AMonat, 1);
  for i := 0 to DaysInMonth(start) - 1 do
    if DayOfWeek(start + i) - 1 = AWochentag then
      ADestList.Add(start + i);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#30

Re: Daten aller Donnerstage im Monat

  Alt 4. Jan 2010, 14:04
Mh, dann wird doch start nicht hochgezählt.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 03:40 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