![]() |
Uhrzeit Stunden und Minuten abrunden
Hallo
ich habe gerade ein kleines Problem: Zwei Text Felder Im Edit1.text = wird die aktuelle Stunde angezeigt Im Edit2.text = wird die Minutenzahl angezeigt Jetzt zeigt er mir z.B. 14:53 an jetzt würde ich gerne in den weiteren text Feldern Edit3.text und Edit4.text immer die abgerundete Zeit anzeigen lassen sprich bei Edit1.text = 14 und im Edit2.text = 53 jetzt im Edit3.text = 14 (bleibt ja) und in Edit4.text = 45 Soll mir halt immer die 15 Minuten varianten anzeigen 15,30,45 und 00 wie bekomme ich es hin.. |
AW: Uhrzeit Stunden und Minuten abrunden
Code:
und schon hast du die gewünschten Minuten ;)
Round(53 / 15) * 15
|
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
nimm ein konstantes Array
Delphi-Quellcode:
, dann kannst Du mit
ARRAY_MIN_QUATER : array [0..3] of string = ('00', '15', '30', '45');
Delphi-Quellcode:
zuweisen.
Edit4.text := ARRAY_MIN_QUATER [Minuten div 15]
Gruß |
AW: Uhrzeit Stunden und Minuten abrunden
hmm funktioniert irgendwie nicht..
|
AW: Uhrzeit Stunden und Minuten abrunden
Zitat:
|
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
Zitat:
Delphi-Quellcode:
Ein
type
TMinute = 0..59; TForm1 = class(TForm) Edit4: TEdit; private procedure SetMinQuaters (const Value : TMinute); public { Public-Deklarationen } end; const ARRAY_MIN_QUATER : array [0..3] of string = ('00', '15', '30', '45'); procedure TForm1.SetMinQuaters (const Value : TMinute); begin Edit4.Text := ARRAY_MIN_QUATER [Value div 15] end;
Delphi-Quellcode:
liefert das gewünschte Ergebnis.
SetMinQuaters (53)
Gruß |
AW: Uhrzeit Stunden und Minuten abrunden
einfache Mathematik:
Delphi-Quellcode:
bzw.
var D: TDateTime; F: Integer;
F := MinsPerDay div 15; // Rundungsfaktor für 15 Minuten (oder / und Single, wenn keine ganze Zahl rauskommen würde) D := Trunc(D * F) / F;
Delphi-Quellcode:
var D: TDateTime;
D := Trunc(D * MinsPerDay / 15) * 15 / MinsPerDay; |
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
ich habe es derzeit folgendermaßen gelößt. Jetzt wird mir die Zeit in die Edit Felder eingefügt Edit1 = Stunden und Edit2 = Minuten (abgezogen -15) Edit3 = Stunden und Edit4 = Minuten (ohne abzug) Ist natürlich nicht so wie es sein sollte.. Was müßte ich jetzt in diesem Code verändern, damit mir wenn z.B. 22:14 ist er richtig gesehen abrunden würde. Also am besten würde es sein wie folgt. Wir hätten jetzt realzeit 22:21Uhr und er geht 15Min zurück und nimmt nur 5 Minuten schritte, sprich Erebnis 22:21Uhr, -15 Minuten = 22:06 = Dieses abrunden auf 5ér Schritte = Endergebnis 22:05 diese in Edit1 und Edit 2 anzeigen und desweiteren Edit 3 und Edit 4 soll nun stehen 22:20Uhr statt der 22:21Uhr
Delphi-Quellcode:
unit zeittool;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit5: TEdit; Label5: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var a,b,s : integer; { Variablen-Vereinbarung } begin Edit1.Text := FormatDateTime('hh', now); Edit4.Text := FormatDateTime('nn', now); Edit3.Text := FormatDateTime('hh', now); //Combobox10.Text := FormatDateTime('nn', now); a := StrToInt(Edit4.Text); b := StrToInt(Edit5.Text); { Eingabe } s := a - b; { Verarbeitung } Edit2.Text := IntToStr(s); { Ausgabe } end; procedure TForm1.FormCreate(Sender: TObject); begin end; end. |
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
bin mir zwar jetzt nicht sicher, ob ich Dein Anliegen richtig verstanden habe (und, ob die Zuordnung der Edits stimmt), Du kannst Dir mal folgendes versuchen:
Delphi-Quellcode:
Gruß
procedure TForm1.Button1Click(Sender: TObject);
var h, m, s, z : Word; function MinutesRounded (const Value : Integer) : Word; begin if Value < 5 then Result := 0 else 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)); Edit4.Text := FormatTime (h, MinutesRounded (m - 15)); end; |
AW: Uhrzeit Stunden und Minuten abrunden
Zitat:
Zitat:
|
AW: Uhrzeit Stunden und Minuten abrunden
Zitat:
|
AW: Uhrzeit Stunden und Minuten abrunden
Zitat:
Delphi-Quellcode:
ist erlaubt, aber bei
0 durch irgendwas
Delphi-Quellcode:
knallt es natürlich.
irgendwas durch 0
|
AW: Uhrzeit Stunden und Minuten abrunden
Hallo
vielen Dank habe es jetzt fast fertig mit dem Code vom volker Jetzt liegt nur ein Problem vor wenn wir 11.05uhr haben Minus 15minuteb zeigt er mir Bei Std 11an statt 10 und bei min 00 statt 50
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var * h, m, s, z : Word; * * function MinutesRounded (const Value : Integer) : Word; * begin *** if Value < 5 then ***** Result := 0 *** else ***** Result := 5 * (Value div 5) * end; * * function FormatTime (const Hour, Minute : Word) : string; * begin *** Result := Format ('%.2d', [Minute]) * end; * function FormatTimeh (const Hour, Minute : Word) : string; * begin *** Result := Format ('%.2d', [Hour]) * end; * begin * DecodeTime (Now, h, m, s, z); * Edit2.Text := FormatTimeh (h, m); * Edit1.Text := FormatTimeh (h, m); * Edit4.Text := FormatTime (h, MinutesRounded (m)); * Edit3.Text := FormatTime (h, MinutesRounded (m - 15)); end; |
AW: Uhrzeit Stunden und Minuten abrunden
Tja, wenn du Minuten und Stunden getrennt verwaltest, dann mußt du bei der Subtraktion der 15 Minuten natürlich auch die Stunden anpassen, wenn es einen "überlauf" gibt.
Eine Stunde abziehen, wenn es weniger als 15 Minuten sind.
Delphi-Quellcode:
Aber, jetzt natürlich nicht vergessen, daß aus 0:05 Uhr jetzt -1 uhr würde. :stupid:
Edit3.Text := FormatTime (h - IfThen(m < 15, -1, 0), MinutesRounded (m - 15));
Also mußt du hier natürlich auch wieder auf die 24 Stunden achten. |
AW: Uhrzeit Stunden und Minuten abrunden
Irgendwie klappt es nicht :-(
|
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
Zitat:
Zitat:
Hast Du es so schon mal versucht
Delphi-Quellcode:
Gruß
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; |
AW: Uhrzeit Stunden und Minuten abrunden
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.. |
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
Zitat:
Also:
Delphi-Quellcode:
Schau Dir bei Gelegenheit in der OH die Erläuterungen zu Format und all den anderen im Thread aufgeworfenen Themen an.
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; Gruß |
AW: Uhrzeit Stunden und Minuten abrunden
Zitat:
|
AW: Uhrzeit Stunden und Minuten abrunden
Hallo,
Zitat:
Gruß |
AW: Uhrzeit Stunden und Minuten abrunden
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?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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