![]() |
Wochen eines Monats (deren Start- und Endtag) ermitteln
Hallo #,
ich fummel mir hier gerade einen ab. geg: ein Monat (Startdatum, Enddatum: TDateTime ges. Anzahl der Wochen des Monats mit Angabe Start/Ende der jeweiligen Woche Also bei März 2009 wäre das dann: 1.3-1.3. 2.3-8.3. usw. Irgendwie stehe ich voll auf dem Schlauch. Das kann doch nicht so schwer sein ;( Heiko |
Re: Anzahl der Wochen eines Monats ermitteln
Die Unit DateUtils kennst du aber schon, oder? :zwinker:
|
Re: Anzahl der Wochen eines Monats ermitteln
Hallo,
jaaaa, und welche Methode draus ? Dass ich DayOfWeek verwenden muss is schon klar, irgendwie bekomme ich das aber nicht hin. GetWeeksOnMonth? ;) Aktueller Ansatz: - alle Sonntage bestimmen - per Schleife den Montag der Sonntage bzw. ersten Tag des Monats (bei der ersten Woche) - ist letzter Tag des Monats kein Sonntag, auch von dieser Woche den Montag bestimmen Ich wollte das eigentlich per Schleife machen, das hakt aber gerade bei mir (interessant ist der März mit dem 1.3, gleich als Sonntag) Ich werde mal dunit anwerfen. Der Code ist mir nicht geheuer ;) Heiko <- hat heute seinen schwachen Tag (einmal im Jahr darf er) |
Re: Anzahl der Wochen eines Monats ermitteln
Wenn Start und Anfang immer im gleichen Monat sind ist es doch das einfachste: (Ende - Start) / 7
Damit hast du die Anzahl der Wochen (eine Woche hat schließlich immer 7 Tage). Oder zählen bei dir nur Wochen von einem bestimmten Wochentag bis zu einem bestimmten Wochentag? Dann müsstest du definieren ob du es wie in Europa üblich machen willst (Montag bis Sonntag) oder ob bei dir der Wochenstart, wie in manchen Ländern üblich, auf einem anderen Wochentag liegt. |
Re: Anzahl der Wochen eines Monats ermitteln
Zitat:
|
Re: Anzahl der Wochen eines Monats ermitteln
Hallo,
es geht um die unterschiedlichen Wochen eines Monats und zwar die Anzahl, aber viel wichtiger Start- und Enddatum. Und wir reden nur von Germany ;) also Mo-So Also vom 1. bis zum Sonntag der 1. Woche des Monats dann wieder der Montag bis So der nächsten Woche usw. Bei der letzten Woche geht es nur bis zum 30./31. Noch einmal, ich brauche Start- und Endetag der Wochen. Also bei März 2009 wäre das dann: 1.3-1.3. 2.3-8.3. 9.3.-15.3 .. 30.3.-31.3. Ich probier mal meine Schleife aus. Hintergrund ist eine Wochengleitzeit-Regelung, die ich gerade erweitere. Heiko |
Re: Anzahl der Wochen eines Monats ermitteln
Zitat:
|
Re: Anzahl der Wochen eines Monats ermitteln
Hallo,
beim 1.3. will ich aber 1.3.-1.3. haben ja, und der 30.3. ist auch ein Montag + 7 = 37 ? ;) Ich habe es jetzt so gelöst wie ich es gesagt habe. Alle Sonntage oder letzter Tag des Monats suchen und den passenden Montag bzw. des 1. Tag des Monats. Mal sehen, was dunit zu den code sagt ... Heiko |
Re: Anzahl der Wochen eines Monats ermitteln
Zitat:
|
Re: Anzahl der Wochen eines Monats ermitteln
Dann eben selber F1 drücken. 8)
Zitat:
|
Re: Anzahl der Wochen eines Monats ermitteln
Hallo,
also bei mir ergibt DayOfWeek aber DoW_Su ... PS: const DoW_Su = 1; ;) Heiko |
Re: Anzahl der Wochen eines Monats ermitteln
Du schaust mit DayOfWeek nach welcher Tag auf den 1. fällt
dann kannst du ausrechnen wie lange die erste Woche noch geht. nun läßt sich ausrechnen wann der 1. Wochenbeginn innerhalb dieses Monat wäre. DayOfMonth gibt's doch auch nocht? ... also bis wann geht der Monat > DatumDesMonatsendes und nun 1{für die 1. Teilwoche} + Aufrunden((DatumDesMonatsendes - DatumDesWochenbeginns + 1 {=Resttage}) / 7) = WochenInDiesemMonat |
Re: Anzahl der Wochen eines Monats ermitteln
Zitat:
|
Re: Anzahl der Wochen eines Monats ermitteln
Hallo
#himitsu: Ich brauche vor allem Starttag und Endtag der einzelnen Wochen. #Edit1: so, mal den Titel geändert. DUnit wird jetzt gefüttert, dann schau mer mal. #Edit2: klappppppppt !!! Heiko |
Re: Anzahl der Wochen eines Monats ermitteln
Zitat:
Delphi-Quellcode:
und
DayOfWeek // Unit Sysutils
Delphi-Quellcode:
Ersteres gibt wirklich den Sonntag als letzten Tag der Woche an. Letzteres aber Montag (weil nach ISO 8601). Um wirklich sicher zu gehen, welcher Wochentag nun der erste der Woche ist (aus Sicht des Anwenders) würde ich allerdings auf API-Funktionen zugreifen (von denen es sicher welche bzgl. Datum/Uhrzeit gibt).
DayOfTheWeek // Unit DateUtils
|
Re: Wochen eines Monats (deren Start- und Endtag) ermitteln
Hallo,
nein, dazu brauche ich kein API-Funktion. Wie weiter oben geschrieben geht es hier um Wochengleitzeit bei einer Monatsabrechnung. Egal, wann der Monat anfängt, die Woche beginnt am 1. Schönes Bsp. ist der März 2009. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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