Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Uhrzeit Rest Min und Sec (https://www.delphipraxis.net/177848-uhrzeit-rest-min-und-sec.html)

Patrick Star 1. Dez 2013 10:41

Uhrzeit Rest Min und Sec
 
Hallo Zusammen,

Brauche etwas Hilfe bei der Uhrzeit Geschichte.
Anzeigen von Uhrzeit und Datum ist mit klar, ABER
wie zeige ich in einem Label die Restlichen Minuten und Sekunden
der Aktuellen Stunde an ???
Oder gibt es da eine Fertige Kompo für Delphi 6 ?

Danke und einen schönen 1. Advent

Patrick

himitsu 1. Dez 2013 10:55

AW: Uhrzeit Rest Min und Sec
 
Delphi-Referenz durchsuchenFormatString?
Delphi-Referenz durchsuchenDecodeTime?

Die DateUtils gibt es wohl noch nicht?
Delphi-Referenz durchsuchenMinuteOf Delphi-Referenz durchsuchenSecondOf

Aber egal ... das ist alles nur Mathe und kann man sich auch selber rausrechnen.
In Delphi-Referenz durchsuchenTDateTime steht ja, wie das aufgebaut ist...

Perlsau 1. Dez 2013 14:16

AW: Uhrzeit Rest Min und Sec
 
Zitat:

Zitat von Patrick Star (Beitrag 1238071)
Brauche etwas Hilfe bei der Uhrzeit Geschichte.

Erzähl doch mal: Was ist das für eine Geschichte?

Zitat:

Zitat von Patrick Star (Beitrag 1238071)
Anzeigen von Uhrzeit und Datum ist mit klar, ABER wie zeige ich in einem Label die Restlichen Minuten und Sekunden der Aktuellen Stunde an ??? Oder gibt es da eine Fertige Kompo für Delphi 6 ?

Was bedeutet "die Restlichen Minuten und Sekunden der Aktuellen Stunde"? Rest von was? Möchtest du, daß am Beginn jeder Stunde eine Minuten-Sekunden-Anzeige rückwärts zählt oder eine Sekunden-Anzeige von 3600 bis 0 rückwärts zählt oder wie darf man das verstehen?

Wenn du in einem Label die Zeit anzeigen möchtest, mußt du den aktuellen Datumswert in einen String umwandeln:
Delphi-Quellcode:
Label_Zeit.Caption := SysUtils.DateTimeToStr(Now);
Willst du eine digitale Uhr anzeigen, benötigst du einen Timer, der jede Sekunde das entsprechende Label (oder das Statusbar-Feld) aktualisiert. In die Ereignisbehandlung des Timers schreibst du dann die obige Zeile hinein.

Zitat:

Zitat von Patrick Star (Beitrag 1238071)
Oder gibt es da eine Fertige Kompo für Delphi 6 ?

Da du ja offensichtlich über eine Delphi-6-IDE verfügst (ich nicht), wäre es doch angebracht, selbst nachzuschauen, ob eine deinen Anforderungen entsprechene Komponente in der Palette existiert.

Patrick Star 1. Dez 2013 16:31

AW: Uhrzeit Rest Min und Sec
 
.... also

ich zeige in einem Label die Uhrzeit an. In einem weiteren das Datum.
Nun sollte mir Label3 anzeigen wie viele Minuten und Sekunden bis zum
Ende der Stunde ( der aktuellen) sind.
Also es ist 13:45:00 so sollte Label3 Caption sein: 15:00.
Also es sind noch 15 Minuten und Null Sekunden bis 14:00:00 Uhr.

Hoffe es besser erklärt zu haben.

Danke Euch

Perlsau 1. Dez 2013 17:22

AW: Uhrzeit Rest Min und Sec
 
Zitat:

Zitat von Patrick Star (Beitrag 1238116)
Nun sollte mir Label3 anzeigen wie viele Minuten und Sekunden bis zum Ende der Stunde ( der aktuellen) sind.

Und wo liegt dabei das Problem? Rechnen kannst du doch wohl, oder? Mach's doch einfach so, wie du das ohne Programm auch machen würdest. Zur Umsetzung schaust dir dann das einmal genauer an.

stahli 1. Dez 2013 17:49

AW: Uhrzeit Rest Min und Sec
 
Hier mal eine alte Funktion von mir als kleine Anregung.
Das kannst Du sicher noch etwas umbauen...

Delphi-Quellcode:
function DateTimeDurationString(DT: TDateTime; DifFlag, NullFlag, HourFlag, SecondFlag: Boolean): String;
var
  Tage, Hour, Min, Sec, MSec: Word;
  N, Dif: TDateTime;
  S: String;
begin
  S := '';
  if DifFlag then
  begin
    N := Now;
    if DT > N then
      Dif := DT - N
    else
      Dif := 0;
  end
  else
  begin
    if DT > 0 then
      Dif := DT
    else
      Dif := 0;
  end;
  if (Dif <> 0) or (NullFlag) then
  begin
    Tage := Trunc(Dif);
    DecodeTime(Dif, Hour, Min, Sec, MSec);
    if (Tage = 0) or (HourFlag) then
    begin
      if Hour > 0 then
      begin
        if SecondFlag then
          S := FormatDateTime('hh:nn:ss', Dif) + ' h'
        else
          S := FormatDateTime('hh:nn', Dif) + ' h';
      end
      else
      if Min > 0 then
      begin
        if SecondFlag then
          S := FormatDateTime('nn:ss', Dif) + ' min'
        else
          S := FormatDateTime('n', Dif) + ' min';
      end
      else
      begin
        if SecondFlag then
          S := FormatDateTime('ss', Dif) + ' sec'
        else
          S := '< 1 min';
      end;
    end;
    if Tage > 0 then
    begin
      if Dif - Tage = 0 then
        S := ''
      else
      if S <> '' then
        S := ', ' + S;
      if Tage = 1 then
        S := '1 Tag' + S
      else
        S := IntToStr(Tage) + ' Tage' + S;
    end;
  end
  else
    S := '';
  Result := S;
end;

sx2008 1. Dez 2013 19:58

AW: Uhrzeit Rest Min und Sec
 
Zitat:

Zitat von Perlsau (Beitrag 1238118)
Und wo liegt dabei das Problem? Rechnen kannst du doch wohl, oder?

Dazu müsste der TE wissen dass TDateTime ein Double-Datentyp ist und ein Tag genau dem Betrag von 1.0 entspricht.
Ein Stunde entspricht also 1.0/24.0.
Delphi-Quellcode:
const
  STUNDEN_PRO_TAG = 24;
var
  jetzt, spaeter : DateTime;
begin
  jetzt := Now;
  spaeter := jetzt + 1.0 / STUNDEN_PRO_TAG;
Aber diese Info hat man als Neuling in Delphi nicht.
Als du zum ersten Mal in der Fahrschule rückwärts einparken musstest - wie war das für dich?
Also bitte etwas Zurückhaltung bei Fragen von Neulingen; du musstest das selbst auch erst lernen.

Sir Rufo 1. Dez 2013 20:38

AW: Uhrzeit Rest Min und Sec
 
Zitat:

Zitat von sx2008 (Beitrag 1238121)
Zitat:

Zitat von Perlsau (Beitrag 1238118)
Und wo liegt dabei das Problem? Rechnen kannst du doch wohl, oder?

Dazu müsste der TE wissen dass TDateTime ein Double-Datentyp ist und ein Tag genau dem Betrag von 1.0 entspricht.
Ein Stunde entspricht also 1.0/24.0.
Delphi-Quellcode:
const
  STUNDEN_PRO_TAG = 24;
var
  jetzt, spaeter : DateTime;
begin
  jetzt := Now;
  spaeter := jetzt + 1.0 / STUNDEN_PRO_TAG;
Aber diese Info hat man als Neuling in Delphi nicht.
Als du zum ersten Mal in der Fahrschule rückwärts einparken musstest - wie war das für dich?
Also bitte etwas Zurückhaltung bei Fragen von Neulingen; du musstest das selbst auch erst lernen.

Er ist nicht davon ausgegangen, dass der TE das weiß, und hat deswegen den Link zur Doku von TDateTime mitgegeben.

Und gerade als Neuling sollte man sich auch mit der Doku auseinandersetzen.

So habe ich das jedenfalls als Neuling gemacht (und mache ich auch heute noch).

Also auch bitte etwas Zurückhaltung bei Antworten von alten Hasen und vor allem die (kritisierten) Antworten komplett lesen, auch wenn da der ein oder andere mal durch etwas hitzigere Antworten aufgefallen ist :)

Perlsau 1. Dez 2013 21:24

Off Topic
 
Zitat:

Zitat von Sir Rufo (Beitrag 1238123)
Er ist nicht davon ausgegangen, dass der TE das weiß, und hat deswegen den Link zur Doku von TDateTime mitgegeben.

Ganz genau! :thumb: Manche machen aber immer wieder so lange rum, bis man ihnen einen fertigen Code liefert. Ich kann das nicht leiden, weil in mir der Eindruck von Desinteresse am Lernen und lediglich Interesse daran, daß andere was bringen, entsteht. Am Ende halten sie sich noch für schlau, weil es ihnen immer wieder gelingt, irgend einem arglosen Programmierer den benötigten Code zu entlocken.

Zitat:

Zitat von Sir Rufo (Beitrag 1238123)
Und gerade als Neuling sollte man sich auch mit der Doku auseinandersetzen. So habe ich das jedenfalls als Neuling gemacht (und mache ich auch heute noch).

Man kann, so wie ich das sehe und erfahren habe, Pascal bzw. Delphi wunderbar aus Büchern und Tutorials erlernen. Ich hatte damals, als ich mit Turbo Pascal anfing (ca. 1993), nur einen Wohnungskollegen, der sich das ebenfalls gerade beibrachte (er tagsüber, ich nachts, weil wir nur einen 286er hatten, also er, ich hatte damals keinen eigenen PC). Danach kam Delphi 3, da hatte ich noch keinen Zugang zu Foren. Und erst nachdem ich 2009 mein erstes Projekt mit Delphi 7 Personal abgeschlossen und RadStudio2009 erworben hatte, suchte ich zum leichteren Erlernen der Datenbank-Entwicklung Hilfe in den Delphi-Foren, und auch das nur gelegentlich. Das meiste lernte ich wiederum aus Büchern, autodidaktisch, selbständig und regelmäßig (täglich).

Die meisten meiner Beiträge sind keine Anfragen. Bevor ich in einem der Delphi-Foren eine Anfrage stelle, habe ich in der Regel einige Stunden selbständig mit der Suche nach einer Lösung verbracht, manchmal sogar Tage. Nicht selten stellt sich dann heraus, daß Fehlermeldungen durch meine eigene Nachlässigkeit oder einen sonstigen Leichtsinnsfehler entstanden sind (Thema Wald und Bäume). Vor allem aber bringt mich auch die tägliche Lektüre der Forenthemen weiter. Das ist oft anstrengend, erzeugt wenig bis gar keine Lustgefühle und muß aus meiner Sicht dennoch täglich erledigt werden, bevor ich mit der eigentlichen Arbeit beginne. Eine vernünftige Codeschnipsel-Verwaltung (selbstverständlich immer mit Angabe der jeweiligen Quelle) rundet diese allmorgendliche Tätigkeit ab.

Ich finde, man hilft Anfängern durch Bereitstellung des gewünschten Codes nicht wirklich. Die meisten scheinen wohl auch Schüler oder Studenten zu sein, die ihre Hausaufgaben nicht gemacht haben und nun dringend jemanden suchen, der das für sie erledigt, weil sie keine Ahnung haben. Das kann ich wie gesagt nicht ausstehen (siehe oben). Und es wird mir auch nicht angenehmer, wenn ich dafür kritisiert oder gar beschimpft werde, ob nun öffentlich oder "heimlich" via PM. Wenn durch eine etwas schärfere Ausdrucksweise User, die nicht wirklich Delphi lernen wollen, abgeschreckt werden (O-Ton Admin: "Frank, du verscheuchst mir meine User!"), ist das aus meiner Sicht nicht wirklich ein Verlust. Und ich bin mir ganz sicher, daß es vielen hier ganz genau so geht, obwohl sie ihren Unmut lieber nicht äußern, um nicht von Moderatoren/Admin an- oder abgemahnt zu werden ...

Zitat:

Zitat von Sir Rufo (Beitrag 1238123)
Also auch bitte etwas Zurückhaltung bei Antworten von alten Hasen und vor allem die (kritisierten) Antworten komplett lesen, auch wenn da der ein oder andere mal durch etwas hitzigere Antworten aufgefallen ist :)

So hitzig, wie das angeblich oft gelesen wird, ist das gar nicht gemeint. Man sollte auch mal die Seite des Rezipienten betrachten, der nur allzu empfindlich reagiert, weil er nicht gut mit Kritik umzugehen gelernt hat ...

stahli 1. Dez 2013 21:30

AW: Uhrzeit Rest Min und Sec
 
[OT]... es hilft dem Fragesteller jetzt auch nicht weiter, hier seitenweise die "richtige" Form der Fragestellung zu diskutieren. Die wird sich mit einem wachsenden Verständnis der Materie automatisch bessern. Bin mal gespannt, ob Patrick schon die Flucht angetreten hat.[/OT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr.
Seite 1 von 3  1 23      

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