erster/letzter Tag einer Woche [ERLEDIGT]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

erster/letzter Tag einer Woche [ERLEDIGT]

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: erster/letzter Tag einer Woche

Beitrag von georg »

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
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Wolfgang Ciriack »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: erster/letzter Tag einer Woche

Beitrag von Manfred »

?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Tom »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Wolfgang Ciriack »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: erster/letzter Tag einer Woche

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: erster/letzter Tag einer Woche

Beitrag von AUGE_OHR »

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: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Herbert »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: erster/letzter Tag einer Woche

Beitrag von AUGE_OHR »

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: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: erster/letzter Tag einer Woche

Beitrag von Jan »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: erster/letzter Tag einer Woche [ERLEDIGT]

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: erster/letzter Tag einer Woche

Beitrag von AUGE_OHR »

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