AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeit zwischen Wochentag

Ein Thema von braessi · begonnen am 6. Feb 2014 · letzter Beitrag vom 7. Feb 2014
Antwort Antwort
braessi

Registriert seit: 17. Jan 2014
5 Beiträge
 
Delphi XE3 Starter
 
#1

Zeit zwischen Wochentag

  Alt 6. Feb 2014, 12:14
Hallo zusammen

Ich bin dabei eine Art Wecker zu erstellen, bei dem man z.B. auswählen kann: ich will das der Wecker Montags, Mittwochs und Donnerstag klingelt. Also vom Prinzip her wie ein normaler Wecker auf dem Smartphone wie man ihn heute kennt.
Es soll allerdings immer angezeigt werden, an welchem Datum der Wecker das nächste mal klingelt, und da komm ich nicht drauf.
Wenn also heut Donnerstag ist, und der nächste Tag den ich gewählt habe ist ein Sonntag, wie krieg ich das Datum dieses Sonntages und wen dieser vorbei ist, wieder das Datum des nächsten gewählten Tages?
Zur Information: Die Tage werden mittels TCheckBox ausgewählt. Und desshalb weiss das Programm ja z.B. nicht in welcher Reihenfolge die Tage abgeklappert werden sollen. Ich habe solche Dinge bissher immer mit einem Haufen if-Verzweigungen gelöst, das kann allerdings ja nicht die Lösung sein?
Und ja, ich bin Anfänger, desshalb frage ich bewusst auch nach möglichst einfachen Lösungen (:

Vielen dank schon mal und freundliche Grüsse
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#2

AW: Zeit zwischen Wochentag

  Alt 6. Feb 2014, 12:52
Wann man ganz naiv herangeht, sollte man eine Schleife verwenden, die über die Wochentage iteriert und dabei mit dem heutigen beginnt und demselben Tag (der nächsten Woche) endet.

1. Start: Tag: Heute, Zeit: jetzt

2. Ist an Tag eine Weckzeit nach Zeit gesetzt? -> Zeige diese an, fertig

3. Bin ich "schon einmal rum", dann fertig, keine Weckzeit vorhanden

4. Tag := nächster Wochentag, Zeit: 00:00,

weiter bei 2

Kannst Du damit etwas anstellen?
  Mit Zitat antworten Zitat
braessi

Registriert seit: 17. Jan 2014
5 Beiträge
 
Delphi XE3 Starter
 
#3

AW: Zeit zwischen Wochentag

  Alt 6. Feb 2014, 13:06
Ja so was habe ich mir auch überlegt, ich habe es jetzt folgendermassen gelöst:

Code:
procedure TForm7.getDifference();
var
  Liste  : array [0 .. 6] of boolean;
  heute  : Integer;
  I      : Integer;
  dayCount: Integer;
begin
  heute := DayOfWeek(now);

  Liste[0] := Sonntag.Checked;
  Liste[1] := Montag.Checked;
  Liste[2] := dienstag.Checked;
  Liste[3] := Mittwoch.Checked;
  Liste[4] := Donnerstag.Checked;
  Liste[5] := Freitag.Checked;
  Liste[6] := Samstag.Checked;
  dayCount := 0;
  for I := heute - 1 to heute - 1 + 7 do begin
    if Liste[i mod 7] Then begin
      break;
    end
    else begin
      dayCount := dayCount + 1;
    end;

  end;
  dateLabel.Caption := DateToStr(now + dayCount);

end;
Funktioniert soweit, was ich bis jetzt getestet habe, allerdings muss ich noch den check machen, ob die Zeit schon vergangen ist, wenn am heutigen Tag ein Häckchen gesetzt wird.
was haltet ihr davon?

Gruss
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Zeit zwischen Wochentag

  Alt 6. Feb 2014, 14:24
Den Wochentagen sind Werte zugeordnet. Schau dir dazu in den DateUtils die Function DayOfTheWeek an. Nun legst du eine Textdatei an, in der folgendes steht:

1;14:35
3;16:12
4;08:20

Diese Textdatei liest du in eine Stringliste ein und separierst alle vial Semikolon (Delimiter) separierten Felder. Danach fragst du ab, ob heute einer dieser Tage ist. Wenn ja, fragst du ab, ob die Weckzeit bereits verstrichen ist. Wenn nein, startest du einen Timer, der einmal pro Sekunde prüft, ob die Weckzeit erreicht ist. Wenn Weckzeit erreicht, dann Klingelton abspielen.

Ich hoffe, du erwartest jetzt nicht, daß man dir das Programm schreibt

Ach ja, es wäre nett und hilfreich, wenn du in deinem Profil eintragen würdest, welche Delphi-Version du verwendest. Als hilfsbereiter User kann man dann Lösungsvorschläge, die deine IDE nicht umsetzen kann, gleich verwerfen.
  Mit Zitat antworten Zitat
braessi

Registriert seit: 17. Jan 2014
5 Beiträge
 
Delphi XE3 Starter
 
#5

AW: Zeit zwischen Wochentag

  Alt 7. Feb 2014, 10:17
Hi vielen Dank, werde ich gleich mal versuchen, und nein ich bin ein ehrgeiziger Mensch, ich will keinen Fertigen Code
Und ja werde ich gleich eintragen.

Danke und freundliche Grüsse
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz