AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Uhrzeit Stunden und Minuten abrunden

Uhrzeit Stunden und Minuten abrunden

Ein Thema von klaus9 · begonnen am 7. Okt 2013 · letzter Beitrag vom 10. Okt 2013
Antwort Antwort
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#1

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 13:49
Irgendwie klappt es nicht
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 16:31
Hallo,

Zitat:
Code:
  function MinutesRounded (const Value : Integer) : Word;
  begin
    if Value < 5 then
      Result := 0
    else
      Result := 5 * (Value div 5)
  end;
Sollte 4..0 div 5 nicht immer 0 ergeben und das komplette if-else damit überflüssig sein ?
Ist schon richtig für 0..4. Nur nicht mehr -15..-6. Mit MinutesRounded (m - 15) durchaus möglich. Aus den (etwas wirren) Vorgaben des TE war nicht klar abzuleiten was er den eigentlich erreichen möchte. Deshalb habe ich die negativen Fälle mit dem Rückgabewert 0 behandelt.

Zitat:
Irgendwie klappt es nicht
Und was klappt nicht? Kannst Du mal Infos liefern?

Hast Du es so schon mal versucht
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  h, m, s, z : Word;

  function MinutesRounded (const Value : Integer) : Word;
  begin
   Result := 5 * (Value div 5)
  end;

  function FormatTime (const Hour, Minute : Word) : string;
  begin
   Result := Format ('%.2d:%.2d', [Hour, Minute])
  end;

begin
  DecodeTime (Now, h, m, s, z);

  Edit1.Text := FormatTime (h, m);
  Edit3.Text := FormatTime (h, MinutesRounded (m));
  if m - 15 > -1 then
    Dec (m, 15)
  else
   begin
     m := 50;
     if h - 1 > -1 then
       Dec (h)
     else
       h := 23
   end;
  Edit4.Text := FormatTime (h, MinutesRounded (m));
end;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#3

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 21:30
Hi Volker,

deine Variante funktioniert super..

er Zeigt mir jetzt wie gewünscht an:

Edit1.text = 22:26
Edit3.text = 22:25

Edit4.text = leer
Edit2.text = 22:10


jetzt muss ich nur noch aus diesen Werten die Felder splitten um diese wie gewünscht anzeigen zu lassen.

Edit1.text = 22 (nur Stunden angezeigt ohne minuten abgerundete version)
Edit3.text = 22 (nur Stunden jetzt STD ohne minuten)

Edit4.text = 25 (nur Minuten angezeigt ohne Stunden agerundete version)
Edit2.text = 10 (nur Minuten angezeigt ohne Stunden -15Min abgerundete version)


Würde halt gerne in den Edit Feldern nur die Stunden und nur die Minuten anzeigen lassen..
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#4

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 22:25
Hallo,

Zitat:
Würde halt gerne in den Edit Feldern nur die Stunden und nur die Minuten anzeigen lassen..
Und wo liegt dann Dein Problem? Wenn die Funktion FormatTime zwei Parameter (Stunde und Minute) nimmt und als Ergebnis sowas wie 22:26 zurückgibt, dann sollte es doch eigentlich nicht so schwer sein die Funktion so umzuschreiben, dass nur ein Parameter (entweder Stunde oder Minute) übergeben wird und der Rückgabewert der entsprechend formatierten Zeichenfolge entspricht.
Also:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  function FormatTime (const Value : Word) : string;
  begin
    Result := Format ('%.2d', [Value])
  end;

begin
  Edit1.Text := FormatTime (h);
  Edit2.Text := FormatTime (m)
end;
Schau Dir bei Gelegenheit in der OH die Erläuterungen zu Format und all den anderen im Thread aufgeworfenen Themen an.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#5

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 22:51
Ist schon richtig für 0..4. Nur nicht mehr -15..-6. Mit MinutesRounded (m - 15) durchaus möglich.
Wobei es dann aber falsch rechnet, denn aus 01 müßte ja 45 werden und nicht 00
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#6

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 23:54
Hallo,

Ist schon richtig für 0..4. Nur nicht mehr -15..-6. Mit MinutesRounded (m - 15) durchaus möglich.
Wobei es dann aber falsch rechnet, denn aus 01 müßte ja 45 werden und nicht 00
nope (mit verlaub ), da rechnet nix falsch. Bei klaren Vorgaben, entsprechende Programmierergebnisse. Fehlen diese kann nur geraten werden was der TE den eigentlich will; ich habe geraten und lag da wohl an der einen oder anderen Stelle ein klein wenig daneben (ansonsten konnte ich offenbar weiterhelfen).

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 10. Okt 2013, 00:24
Die Informationslage ist hier in der Tat bullshit. Man bekommt durchaus den Eindruck, als wolle uns klaus9 bewusst veräppeln. Oder er weiss selber nicht, was es nachher mal werden soll. Ich plädiere aber für ersteres, da er sein bereits berechtigt gerügtes "funktioniert nicht" auch noch wiederholt hat. Was bzw. wie viel denken solche Leute?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort

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 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz