![]() |
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:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 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