AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Uhrzeit Stunden und Minuten abrunden
Thema durchsuchen
Ansicht
Themen-Optionen

Uhrzeit Stunden und Minuten abrunden

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

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

Uhrzeit Stunden und Minuten abrunden

  Alt 7. Okt 2013, 21:25
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..
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 7. Okt 2013, 21:40
Code:
Round(53 / 15) * 15
und schon hast du die gewünschten Minuten
Leo S.
  Mit Zitat antworten Zitat
Volker Z.

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

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 7. Okt 2013, 21:49
Hallo,

nimm ein konstantes Array ARRAY_MIN_QUATER : array [0..3] of string = ('00', '15', '30', '45'); , dann kannst Du mit Edit4.text := ARRAY_MIN_QUATER [Minuten div 15] zuweisen.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
klaus9

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

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 7. Okt 2013, 21:54
hmm funktioniert irgendwie nicht..
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 7. Okt 2013, 21:55
hmm funktioniert irgendwie nicht..
Und was sollen wir mit dieser Info jetzt anfangen ?
Leo S.
  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 7. Okt 2013, 22:16
Hallo,

Zitat:
hmm funktioniert irgendwie nicht..
Es funktionieren beide Varianten. Vielleicht war ich nicht ausführlich genug.

Delphi-Quellcode:
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;
Ein SetMinQuaters (53) liefert das gewünschte Ergebnis.

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

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

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 7. Okt 2013, 23:09
einfache Mathematik:

Delphi-Quellcode:
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;
bzw.

Delphi-Quellcode:
var D: TDateTime;

D := Trunc(D * MinsPerDay / 15) * 15 / MinsPerDay;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
klaus9

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

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 8. Okt 2013, 21:38
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.
  Mit Zitat antworten Zitat
Volker Z.

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

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 8. Okt 2013, 22:29
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:
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;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#10

AW: Uhrzeit Stunden und Minuten abrunden

  Alt 9. Okt 2013, 06:39
Soll mir halt immer die 15 Minuten varianten anzeigen 15,30,45 und 00
Zitat von klaus9:
Wir hätten jetzt realzeit 22:21Uhr und er geht 15Min zurück und nimmt nur 5 Minuten schritte
Was denn jetzt? 15 min oder 5 min?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 15:37 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