Announcement

Collapse
No announcement yet.

KW zu Datum

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • KW zu Datum

    Hallo!
    Also ich habe die Kalenderwoche, das Jahr und den Tag(Montag,Dienstag,Mittwoch usw.). Nun suche ich eine funktion die diese daten in ein Datum zurück wandelt. weiß da jemand was? danke schonmal
    gruß christian

  • #2
    Hallo Christian,

    auf welcher Programmier basis möchtest Du es denn haben?

    es ist eigentlich ganz einfach:
    ich stell Dir mal die Routine für Delphi rein, müßte aber auf jedem Anderem System auch laufen, (mit Änderungen!)

    <pre>procedure TForm1.B_machdatumClick(Sender: TObject);
    <pre>var wochentag_1, akt_kw, akt_wt, wt_in_kw : integer;
    <pre> ein_tag_in_kw, das_Datum : tdatetime;
    <pre>
    <pre>begin
    </pre>
    <i>// hier bestimme ich den Wochentag des 01.01.Jahr</i>
    </pre>
    <pre> wochentag_1:=dayoftheweek(strtodate('01.01.'+jahr. Text));
    <pre> kw_tag_1:=weekoftheyear(strtodate('01.01.'+jahr.Te xt));
    <pre> akt_kw:=strtoint(kalenderwoche.Text);
    </pre>
    <i>// hier rechne ich einen Tag in der akt. Kalenderwoche aus</i>
    </pre>
    <pre> if kw_tag_1 = 1 then
    <pre> ein_tag_in_kw:=strtodate('01.01.'+jahr.Text)+(7*(a kt_kw-1))
    <pre> else
    <pre> ein_tag_in_kw:=strtodate('01.01.'+jahr.Text)+(7*(a kt_kw));
    </pre>
    <i>// dann stelle ich fest was das für eine Wochentag ist</i>
    </pre>
    <pre> akt_wt:=wochentag.ItemIndex+1;
    </pre>
    <i>// wochentag.itemindex ist ein ComboBox 1.Wert=0 (deswegen +1)</i>
    <i>// weil nach Iso-Norm Mo=1 .. So=7</i>
    </pre>
    <pre> wt_in_kw:=dayoftheweek(ein_tag_in_kw);
    </pre>
    <i>// und rechne jetzt rauf oder runter vom Tag</i>
    </pre>
    <pre> if wt_in_kw>akt_wt then
    <pre> das_datum:=ein_tag_in_kw-(wt_in_kw-akt_wt)
    <pre> else
    <pre> das_datum:=ein_tag_in_kw+(akt_wt-wt_in_kw);
    </pre>
    <i>// und habe meinen gesuchten Tag</i>
    </pre>
    <pre> datum_feld.Text:=formatdatetime('dd.mm.yyyy',das_d atum);
    <pre>end;

    wenn Du noch Fragen hast kannste ja posten oder mailen [email protected]

    Gruß Marti

    Comment

    Working...
    X