Autor Thema: Datum aus Kalenderwoche berechnen  (Gelesen 3622 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Datum aus Kalenderwoche berechnen
« am: 22.08.05 - 18:53:41 »
Hat jemand eine FORMEL parat, mit der ich aus einer gegebenen Kalenderwoche ein Datum errechnen kann ?
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Datum aus Kalenderwoche berechnen
« Antwort #1 am: 22.08.05 - 19:06:26 »
hmmm... welches Datum ?

Den ersten der Woche, oder den zweiten der Woche, oder doch lieber den letzten ?

Da der 04.Januar immer in KW1 liegt (zumindest in Europa), könnte man so vorgehen:

KW := 34

jan04 := [04.01.2005];

adjDays := (KW-1) * 7;

oneDayinYourKW := @Adjust( jan04 ; 0 ; 0 ; adjDays ; 0 ; 0 ; 0 );


oneDayInYourKW ist jetzt der gleiche Tag wie der 04.Januar.

über @Weekday kannst Du jetzt den Tag bestimmen, und dann zum Montag der gleichen Woche gehen, o.ä.

HTH
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Datum aus Kalenderwoche berechnen
« Antwort #2 am: 22.08.05 - 19:18:11 »
Yep,Danke, das ist es ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Datum aus Kalenderwoche berechnen
« Antwort #3 am: 22.08.05 - 19:26:12 »
der Vollständigkeit halber hier noch die vollständige Formel um den Freitag einer gegebenen Kalenderwoche zu bestimmen:

KW := 34;
jan04 := [04.01.2005];
adjDays := (KW-1) * 7;
oneDayinYourKW := @Adjust( jan04 ; 0 ; 0 ; adjDays ; 0 ; 0 ; 0 );
_friday:=@Adjust(OneDayInYourKW;0;0;6 - @Weekday(oneDayinYourKW); 0;0;0);
@Prompt([Ok];"";@Text(_Friday))
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Datum aus Kalenderwoche berechnen
« Antwort #4 am: 22.08.05 - 19:42:07 »
@Weekday für Sonntag = 1.

Um zum Freitag der selben Woche zu kommen, müsstest Du -2 rechnen.
In Deiner Formel rechnest Du +5 : Bist also eine Woche zu spät...

Den Sonntag musst Du also als Sonderfall betrachten. Für alle anderen Klappt's.

Montag : 2 -> +4 OK
Dienstag : 3 -> +3 OK
Mittwoch : 4 -> +3 OK
Donnerstag : 5 -> +1 OK
Freitag : 6 -> 0 OK
Samstag : 7 -> -1 OK


Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Datum aus Kalenderwoche berechnen
« Antwort #5 am: 22.08.05 - 19:58:20 »
merci.

Kurz noch zum Hintergrund. Ich habe 2 Datenbanken, die zu einer DB zusammengezogenwerden sollen. Die "beschreibenden" Felder sind leicht über einen Migrationsagenten zusammenzufassen. Soweit kein Problem.

Einzig ein Feld; in der einen DB ein Textfeld mit "Freitexteingabe" ( entweder KW/YYYY oder Datum DD.MM.YYYY )in der anderen DB ein Datumsfeld.

Beide Felder übernehme ich in ein neues Feld und berechne dann  die KW daraus; wenn Feld leer, dann schrott

REM {Berechnung der Kalenderwoche des Tages >>Datum<<};
REM {Die Initialisierung von DAtum kann bspw. mit @Today erfolgen.};



Datum           := @TextToTime(@Text(puls.BisWann));
Wochenstart     := @Adjust(Datum; 0;0; -@Weekday(Datum)+@If(@Weekday(Datum)=1;-5;2); 0;0;0);
ErsterJanuar    := @Date(@Year(Wochenstart); 1; 1);
ErsterWochentag := @Weekday(ErsterJanuar);
MinutenProTag   := 60 * 60 * 24;
TagImJahr       := (Wochenstart - ErsterJanuar) / MinutenProTag;
Kalenderwoche   := 1 + @Round(TagImJahr / 7);
KW              := @If((ErsterWochenTag *= 2:3:4) & (Kalenderwoche = 53); 1; Kalenderwoche);

_KW:=
@If(!@Contains(@Text(puls.BisWann);"/");
@Text(KW) + "/" +@Text(@Year(Datum));
@Text(puls.BisWann));

@If(@Trim(@Text(puls.BisWann))="";
"-";
@Word(_KW;"/";2) +"/"+@Word(_KW;"/";1))

( Formel ist übrigens von Bernhard und kann über den Suchbegriff "Kalenderwoche" hier gefunden werden )

Für evtl. Benachrichtigungen brache ich aber neben der KW auch noch ein DATUM; daher die Frage.
Die Ansicht sieht dann ( vorläufig so aus )

Die obige Formel ist in einem Feld "dspKW" ( berechnet) im Doc enthalten: Die Spalte mit dem Datum enthält

KW := @TextToNumber(@Word(dspKW;"/";2));
jan04 := [04.01.2005];
adjDays := (KW-1) * 7;
oneDayinYourKW := @Adjust( jan04 ; 0 ; 0 ; adjDays ; 0 ; 0 ; 0 );
_friday:=@Adjust(OneDayInYourKW;0;0;4 - @Weekday(oneDayinYourKW); 0;0;0);
_friday

P.S. Ich rechne hier übrigens den MITTWOCH aus  ;)
Und ich weiß, daß ich auch noch @Word(_KW;"/";1) checken und dann entsprechend tätig werden muß  ;D Deshalb ja auch "vorläufig".
Und den Einwand von Tode werde ich auch noch berücksichtigen ...
« Letzte Änderung: 22.08.05 - 20:10:53 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Datum aus Kalenderwoche berechnen
« Antwort #6 am: 22.08.05 - 21:44:29 »
( Formel ist übrigens von Bernhard und kann über den Suchbegriff "Kalenderwoche" hier gefunden werden )

Ich will mich hier nicht mit fremden Federn schmücken: Die Formel wurde aus meinem BP-Beitrag mittlerweile durch eine kürzere Variante von Joachim (Alias "jr") ersetzt. Ich habe Joachims Formel  damals aufmerksam gelesen und danach ziemlich geknüppelt in Tests und stehe damit für die Freigabe / den Ersatz meines Konstrukts.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Datum aus Kalenderwoche berechnen
« Antwort #7 am: 22.08.05 - 21:56:13 »
Ich habe Joachim im BP-Artikel gleich mal in der Autorenliste ergänzt:

Zitat
Autor(en):             Bernhard Koehler (koehlerbv), Formeln: Joachim (jr)

Übrigens, hier gibt es noch eine Lösung von Ata für Lotus Script:
http://www.atnotes.de/index.php?topic=4453.0 (Function 'KWRange')
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Datum aus Kalenderwoche berechnen
« Antwort #8 am: 23.08.05 - 10:02:24 »
Hier gibt es noch einiges Rund um den Kalender 

http://www.computus.de/

Gruss

André
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz