Announcement

Collapse
No announcement yet.

Frage wie bekomme ich die datumpunkte weg?

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

  • Frage wie bekomme ich die datumpunkte weg?

    <b>
    dateiname := 'd' +datetostr (date);</b>

    Wer kann mir diese Frage beantworten?

  • #2
    <p>Hallo Bine,<br>
    <br>
    dafür gibt es mehrere Möglichkeiten.<br>
    1. Du entfernst die Punkte aus dem Datumstring oder<br>
    2. Du zerlegst das Datum in seine Bestandteile und baust aus diesen Deinen String zusammen.<br>
    <br>
    zu 1.<br>
    <br>
    <pre>
    function PunktAusDatum(const aTextDatum:String):String;
    var i:Integer;
    begin
    Result:='';
    for i:=1 to Length(aTextDatum) do if (aTextDatum[i]<>'.') then
    Result:=Result+aTextDatum[i]);
    end; // PunktAusDatum
    </pre>
    <br>
    zu 2.<br>
    <br>
    </pre>
    const
    rsFtmName='%s%0.2d%0.2d%d'; // wenn Jahresangabe 4-stellig
    //rsFmtName='%s%0.2d%0.2d%0.2d'; // wenn Jahresangabe 2-stellig
    function MakeDateiname(const aName:String; const aDate:TDateTime):String;
    var tag, monat, jahr:Word;
    begin
    DecodeDate(aDate, jahr, monat, tag);
    // ggf. 2000 vom Jahr abziehen, wenn Jahresangabe 2-stellig
    // Dec(jahr, 2000);
    Result:=Format(rsFmtName, [aName, tag, monat, jahr]);
    end; // MakeDateiname
    </pre>
    <br>
    Gruß Thomas</p&gt

    Comment


    • #3
      <p>Hallo Bine,<br>
      <br>
      dafür gibt es mehrere Möglichkeiten.<br>
      1. Du entfernst die Punkte aus dem Datumstring oder<br>
      2. Du zerlegst das Datum in seine Bestandteile und baust aus diesen Deinen String zusammen.<br>
      <br>
      zu 1.<br>
      <pre>
      function PunktAusDatum(const aTextDatum:String):String;
      var i:Integer;
      begin
      Result:='';
      for i:=1 to Length(aTextDatum) do if (aTextDatum[i]<>'.') then
      Result:=Result+aTextDatum[i]);
      end; // PunktAusDatum
      </pre>
      <br>
      zu 2.<br>
      <pre>
      const rsFtmName='%s%0.2d%0.2d%d'; // wenn Jahresangabe 4-stellig
      {rsFmtName='%s%0.2d%0.2d%0.2d'; // wenn Jahresangabe 2-stellig}function MakeDateiname(const aName:String; const aDate:TDateTime):String;
      var tag, monat, jahr:Word;
      begin
      DecodeDate(aDate, jahr, monat, tag);
      // ggf. 2000 vom Jahr abziehen, wenn Jahresangabe 2-stellig
      // Dec(jahr, 2000);
      Result:=Format(rsFmtName, [aName, tag, monat, jahr]);
      end; // MakeDateiname
      </pre>
      <br>
      Gruß Thomas</p&gt

      Comment


      • #4
        <p>Hallo Bine,<br>
        <br>
        dafür gibt es mehrere Möglichkeiten.<br>
        1. Du entfernst die Punkte aus dem Datumstring oder<br>
        2. Du zerlegst das Datum in seine Bestandteile und baust aus diesen Deinen String zusammen.<br>
        <br>
        zu 1.<br>
        <pre>
        function PunktAusDatum(const aTextDatum:String):String;
        var i:Integer;
        begin
        Result:='';
        for i:=1 to Length(aTextDatum) do if (aTextDatum[i]<>'.') then
        Result:=Result+aTextDatum[i]);
        end; // PunktAusDatum
        </pre>
        <br>
        zu 2.<br>
        <pre>
        const rsFtmName='%s%0.2d%0.2d%d'; // wenn Jahresangabe 4-stellig
        {rsFmtName='%s%0.2d%0.2d%0.2d'; // wenn Jahresangabe 2-stellig
        function MakeDateiname(const aName:String; const aDate:TDateTime):String;
        var tag, monat, jahr:Word;
        begin
        DecodeDate(aDate, jahr, monat, tag);
        // ggf. 2000 vom Jahr abziehen, wenn Jahresangabe 2-stellig
        // Dec(jahr, 2000);
        Result:=Format(rsFmtName, [aName, tag, monat, jahr]);
        end; // MakeDateiname
        </pre>
        <br>
        Gruß Thomas</p&gt

        Comment


        • #5
          <p>Hallo Bine,<br>
          <br>
          habe vergessen anzugeben, wie die Routinen benutzt werden müssen:<br>
          <br>
          zu 1.: dateiname:=d+PunktAusDatum(DateToStr(Date));<br>
          zu 2.: dateiname:=MakeDateiname(d, Date);<br>
          <br>
          Gruß Thomas</p&gt

          Comment


          • #6
            <p>Hallo Bine,<br>
            <br>
            habe vergessen anzugeben, wie die Routinen benutzt werden müssen:<br>
            <br>
            zu 1.: dateiname:='d'+PunktAusDatum(DateToStr(Date));<br>
            zu 2.: dateiname:=MakeDateiname('d', Date);<br>
            <br>
            Gruß Thomas</p&gt

            Comment


            • #7
              Dankeeeee hab schon gerätselt!! *GG*

              BINE :_

              Comment


              • #8
                ich hätte noch ein Frage, zu

                <b>DecodeDate(valt_datumbis, Year, Month, Day);</b>

                ich möchte wenn das datum valt_datumbis zb: 12.03.1997 das er mir
                in einem eingabefeld 31.12.1996 hinschreibt.

                Leider hat mir die Hilfe nichts geholfen!!

                BIN

                Comment


                • #9
                  <p>Hallo Bine,<br>
                  <br>
                  ich verstehe Deine Frage nicht ganz?! Bitte etwas präziser.<br>
                  <br>
                  Gruß Thomas</p&gt

                  Comment


                  • #10
                    Zerteile das Datum 12.03.1997
                    in tag monat jahr

                    bei jahr ziehst du eines ab

                    <b>year:= year-1;</b>

                    setze Tag auf den 31. <b>day:= 31;</b>

                    setze Monat auf den 12 <b> month:= 12;</b>

                    dann füge die daten wieder zu einem datum zusammen

                    result:= ..???

                    Wie mache ich sowas

                    Comment


                    • #11
                      <p>Hallo Bine,<br>
                      <br>
                      mit der Function <b>EncodeDate</b>.<br>
                      <br>
                      Edit1.Text:=DateToStr(EncodeDate(year, month, day));
                      <br>
                      Gruß Thomas</p&gt

                      Comment


                      • #12
                        Also in diesem code ist noch ein Fehler,..
                        <pre>
                        datum:= strtodate(valt_datumbis);
                        DecodeDate(datum, Year, Month, Day);
                        Year:= Year-1;
                        Month:= 12;
                        Day:= 31;
                        datum:=DateToStr(EncodeDate(year, month, day));
                        </pre&gt

                        Comment


                        • #13
                          <p>Hallo Bine,<br>
                          <br>
                          die Variable <b>datum</b> wird wahrscheinlich vom Typ TDateTime sein?<br>Wenn dem so ist, so kannst Du nicht DateToStr benutzen. Sondern:<br>
                          <br>
                          datum:=EncodeDate(year, month, day);<br>
                          <br>
                          Gruß Thomas</p&gt

                          Comment


                          • #14
                            Danke es lag daran das ich die Variablen nicht richtig oder gar nicht definiert habe
                            <pre>
                            var
                            Year, Month, Day: Word;
                            datum: Tdate;
                            <pre>
                            begin
                            datum:= strtodate(valt_datumbis);
                            DecodeDate(datum, Year, Month, Day);
                            Year:= Year-1;
                            Month:= 12;
                            Day:= 31;
                            datum:=(EncodeDate(year, month, day));
                            end;
                            </pre&gt

                            Comment

                            Working...
                            X