Announcement

Collapse
No announcement yet.

Vergleichen von zwei Datums

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

  • Vergleichen von zwei Datums

    Hallo

    Ich habe ein Bachupprogramm geschreiben.
    Mein Problem ist, das das Programm selbstständig erkennen soll, wenn das Datum an dem es ausgeführt werden soll überschritten ist und sich somit dan selbst starten soll.

    Bsp: Es soll am 30.Juli 2001 starten, aber der Computer wird erst am 1. oder 2. etc. August angeschaltet. Jetzt soll das Backup merken, das das gegeben datum (30.Juli 2001) 2 Tage oder so überschritten ist und dann selbst starten.

    Danke SONNE

  • #2
    Hallo Sonne,
    irgendwo musst du ja das Datum vom 30.07. speichern. Ini-Datei oder Text-Datei. Irgendwann sollte auch dein Programm starten (vielleicht im Autostart-Ordner) und prüfen, ob das Rechner-Datum (date) mit dem gespeicherten übereinstimmt (if date > Speicherdatum then ackern else Feierabend). Mehr sollte man nicht brauchen, um glücklich zu sein.

    mfg Klaus-Pete

    Comment


    • #3
      Mein Prog:

      Es ist der 1 August gegeben, und wenn das Datum überholt ist, soll er die Message ('..Vorbei..') bringen etc
      aber er bringt mir die Message schon, nur wenn der Tag des aktuellen Datums größer ist als das gegebene.
      Also achtet er nur auch Tag und nicht auf MONAT.

      procedure TForm1.Timer1Timer(Sender: TObject);
      begin

      label1.caption:=Datetostr(now); //aktuelles Datum
      label2.caption:='01.08.01'; //festgelegt Datum
      if label1.caption>label2.caption then begin //wenn aktuelles höher
      //als gegebenes,dann..
      Showmessage('Datum ist vorbei');
      timer1.enabled:=false;
      end
      else //ansonsten
      showmessage('Datum kommt noch');
      timer1.enabled:=false;
      end

      Comment


      • #4
        Hi Sonne,

        für Datumsvergleiche sollte man es vermeiden die Daten als <i>string</i> miteinander zu vergleichen. Entweder du vergleichst direkt die Werte als TDateTime miteinander (z.B. if AusfuehrDatum < Now then...) - soll die Zeit keine Rolle spielen, muß dieser Anteil noch abgeschnitten werden (if Trunc(AusfuehrDatum) < Trunc(Now) then...) - oder du wandelst die Strings in ein "vergleichbares" Format (YYYYMMDD) um.

        Gruß Fal
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Nur mal nebenbei. Ist der Plural von Datum nicht Daten??

          Comment


          • #6
            hi sonne!

            versuche mal folgendes: <br>
            var <br>
            s1, s2 : string;<br>

            begin <br>
            s1 := '30.07.2001'; //dein datum <br>
            s2 := '1.08.2001'; //aktuelles datum <br>
            i := StrToDate(s2) - StrToDate(s1); <br>
            if i > 0 then ShowMessage ('vorbei...'); <br>
            end; <br>

            mfg

            bildschirmarbeite

            Comment


            • #7
              hi sonne
              datumwerte kannst du direkt vergleichen
              dein letztes backupdatum liest du irgendwo aus(dateidatum,inifile,registry oder wo auch immer)

              function StartBackUp(VergleichsDatum, SollDatum :TDateTime,):Boolean;
              begin
              result := false;
              if VergleichsDatum < SollDatum then result := true;
              end;

              in deinem programm
              if StartBackUp(LetztesBackupDatum,Now) then .....

              Comment

              Working...
              X