erster/letzter Tag einer Woche [ERLEDIGT]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18938
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

erster/letzter Tag einer Woche [ERLEDIGT]

Beitrag von Manfred » Fr, 04. Okt 2019 18:09

hich habe über Week() die Woche des Jahres. Jetzt würde ich gerne herausfinden, wie das Anfangs/Enddatum der jeweiligen Woche lautet. Gibt es da schon etwas fertiges zu, oder wie geht man da am besten vor? Ok, man kann eine Schleife bilden, die rauf und runter läuft, aber das wäre ja zu einfach. :lol:
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2452
Registriert: Fr, 08. Feb 2008 21:29

Re: erster/letzter Tag einer Woche

Beitrag von georg » Fr, 04. Okt 2019 18:27

Hallo, Manfred -


das wirst Du wohl selbst programmieren müssen, nicht zuletzt, da nicht klar ist, welcher Wochentag welcher ist.

Geht man von Mittwoch (= Mitte der Woche) aus, dann wäre der erste Tag der Sonntag, und der Samstag der letzte Tag. Schaut man sich die (meisten) Kalender dann, dann beginnt dort die Woche mit dem Montag und endet mit dem Sonntag.

Du brauchst also neben der reinen Berechnung auch einen Parameter für das "Koordinatensystem".
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2558
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Wolfgang Ciriack » Fr, 04. Okt 2019 20:20

Zusammen mit dow(date()) ist das doch ziemlich einfach :D
Zuletzt geändert von Wolfgang Ciriack am Fr, 04. Okt 2019 20:24, insgesamt 1-mal geändert.
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18938
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: erster/letzter Tag einer Woche

Beitrag von Manfred » Fr, 04. Okt 2019 20:23

?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7765
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Tom » Fr, 04. Okt 2019 20:24

1 ist Sonntag, 7 Samstag. Die Funktionen BoW() und EoW() sind Zweizeiler.
Herzlich,
Tom

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2558
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Wolfgang Ciriack » Fr, 04. Okt 2019 20:26

Ok. ich dachte du ermittelst die week selber, aber ich denke, du hast die vorgegeben ?
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18938
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: erster/letzter Tag einer Woche

Beitrag von Manfred » Fr, 04. Okt 2019 20:30

ich habe ein Datum und ermittel daraus die Woche. Aber anders gesehen ist das ja Blödsinn. Wenn ich das Datum habe, brauche ich ja nicht die Woche. Ich kann ja daraus ermitteln wo ich stehe und wie weit ich vor und zurück muß.
Aber andersherum, ich bekomme eine Wochennummer und müßte daraus irgendein Datum ableiten, was in diese Woche fällt um dann wieder Anfang und Ende ermitteln zu können.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12126
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: erster/letzter Tag einer Woche

Beitrag von AUGE_OHR » Fr, 04. Okt 2019 21:13

Manfred hat geschrieben:
Fr, 04. Okt 2019 20:30
Aber andersherum, ich bekomme eine Wochennummer und müßte daraus irgendein Datum ableiten, was in diese Woche fällt um dann wieder Anfang und Ende ermitteln zu können.
wie wäre eine Function um den Montag einer KW zu errechnen :?:

Code: Alles auswählen

FUNCTION XF_KwMontag( nWoche, nJahr )
   //
   // SYNTAX : <dDatum> = XF_KwMontag( <nWoche>, <nJahr> )
   // <nWoche> = Kalender Woche
   // <nJahr>  = Jahr
   // <dDatum> = Datum
   //
   // ZWECK   : Montag der Kalender Woche des Jahr feststellen
   //
   // HINWEIS : für alle Wochen
   //
   // BEISPIEL: ? XF_KwMontag( 1, YEAR( DATE() ) )
   //
LOCAL dDay, nDayOfWeek, dDatum

   dDay := CTOD( "01.01." + LTRIM( STR( nJahr, 4, 0 ) ) )
   nDayOfWeek := IF( DOW( dDay ) = 1, 7, DOW( dDay ) - 1 )
   dDatum := IF( nDayOfWeek < 5, dDay - 6 - nDayOfWeek + 7 * nWoche, dDay + 8 - nDayOfWeek + 7 * ( nWoche - 1 ) )

RETURN ( dDatum )
gruss by OHR
Jimmy

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1943
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Herbert » Fr, 04. Okt 2019 23:50

Achtung, kleine Problematik zum Jahresbeginn!
Die erste Kalenderwoche eines Jahres ist die Woche, die mindestens vier Tage des neuen Jahres beinhaltet.

Fällt also beispielsweise der 1. Januar auf einen Dienstag, beginnt die erste Kalenderwoche mit Montag, den 31.12., da diese Woche sechs Tage des neuen Jahres enthält (Dienstag, Mittwoch, Donnerstag, Freitag, Samstag und Sonntag).

Fällt der 1. Januar hingegen auf den Freitag, dann beginnt die erste Kalenderwoche des neuen Jahres mit Montag, dem 04.01., da die Vorwoche nur drei Tage des neuen Jahres enthält (Freitag, Samstag, Sonntag).
aus aktuelle-kalenderwoche.org.
Grüsse Herbert
Immer in Bewegung...

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12126
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: erster/letzter Tag einer Woche

Beitrag von AUGE_OHR » Sa, 05. Okt 2019 0:07

Herbert hat geschrieben:
Fr, 04. Okt 2019 23:50
Die erste Kalenderwoche eines Jahres ist die Woche, die mindestens vier Tage des neuen Jahres beinhaltet.
JA

Code: Alles auswählen

dDatum := IF( nDayOfWeek < 5, ...
gruss by OHR
Jimmy

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13551
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Jan » Sa, 05. Okt 2019 8:00

Erweitertes Problem: In den USA (Heimat der üblichen Programmiersprachen udn damit auch der Logik darin) wird die erste Woche des Jahres anders bestimmt. Es kann also passieren, das die schon in KW 2 sind, während wir noch in KW 1 sind. Wenn man also Standard-Funktionen benutzt muß man aufpassen, ob die (für uns) korrekt rechnen.

Mit Xbase++ ist das zum Glück kein Problem.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18938
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: erster/letzter Tag einer Woche [ERLEDIGT]

Beitrag von Manfred » Sa, 05. Okt 2019 8:45

beim Arbeiten wird man ja immer schlauer. Ich benötige jeweils den Montag und den Sonntag für meinen Bereich. Also habe ich das hier gebaut.

Code: Alles auswählen

FUNCTION fldow(dDatum)                                                          // First Last Day of Week
         LOCAL aFldow := Array(2)
         LOCAL nI
         LOCAL nTag

         DEFAULT dDatum TO Date()

         nTag := Dow(dDatum)                                                    // den Wochentag ermitteln

         FOR nI := nTag TO 7
             aFldow[2] := ++dDatum                                              // hier muß vorher hochegzählt werden
         NEXT
         FOR nI := 1 TO nTag
             aFldow[1] := dDatum--                                              // hier muß hinterher runtergezählt werden
         NEXT
         RETURN aFldow
damit komme ich erstmal zurecht. Hoffentlich ergeben sich später keine Seiteneffekte, egal wie und wodurch.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12126
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: erster/letzter Tag einer Woche

Beitrag von AUGE_OHR » Sa, 05. Okt 2019 9:03

Jan hat geschrieben:
Sa, 05. Okt 2019 8:00
Erweitertes Problem: In den USA (Heimat der üblichen Programmiersprachen udn damit auch der Logik darin) wird die erste Woche des Jahres anders bestimmt. Es kann also passieren, das die schon in KW 2 sind, während wir noch in KW 1 sind. Wenn man also Standard-Funktionen benutzt muß man aufpassen, ob die (für uns) korrekt rechnen.
JA dun hast Recht.
meine Version ist nur für die Deutsche Logik ausgelegt
Jan hat geschrieben:Mit Xbase++ ist das zum Glück kein Problem.
hast du die Lösung wie man den 3-Zeiler erweitert :?:
gruss by OHR
Jimmy

Antworten