AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Min-/Max-Problem mit DateTimePicker / Rundung von Datum

Min-/Max-Problem mit DateTimePicker / Rundung von Datum

Ein Thema von stoermi · begonnen am 18. Dez 2004 · letzter Beitrag vom 20. Dez 2004
Antwort Antwort
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Min-/Max-Problem mit DateTimePicker / Rundung von Datum

  Alt 18. Dez 2004, 14:20
Hallo!

Ich habe ein kleines Problem mit der Min/Max-Einstellung des Datums für einen DateTimePicker...

Ich hole mir aus einer Datenbank ein Datum.
Dieses plus 1 soll das maximale Datum des TDPicker sein.
Das minimale Datum soll ein durch "now" oder einen vorhergehenden DTPicker bestimmtes Datum ebenfalls addiert mit eins sein.
Dann soll dem DateTimePicker das maximale Datum zugewiesen werden.

Soweit, so gut. Ein Problem bekomme ich nur, wenn das maximale Datum zufällig gleich dem minimalen Datum ist.

Da das minimale Datum ein genuer Wert, mit Minuten und Sekunden-Wert ist (Bsp. 38387.124), und das Datum aus der Datenbank nur das Datum ohne Minuten, usw enthält (Bsp. 38387) kommt es zwingend zum Fehler. Der Wert ist ja dann kleiner als der kleinstmögliche...

Jetzt die eigentliche Frage. Wie runde ich ein TDateTime bzw. TDate genau auf den aktuellen Tag.
Es muss ja immer eine Abrundung sein.

Das Problem war mir bisher nicht bewusst, dumm nur, dass TDate eben auch die Time-Werte (Nachkommastellen) mitspeichert, was sowieso sinnlos ist...!
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#2

Re: Min-/Max-Problem mit DateTimePicker / Rundung von Datum

  Alt 18. Dez 2004, 14:53
und ich dachte du hast probleme mit dem MinMaxAlgo so a la Komponente mit KI
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Min-/Max-Problem mit DateTimePicker / Rundung von TDate

  Alt 18. Dez 2004, 15:47
Zitat von QuickAndDirty:
und ich dachte du hast probleme mit dem MinMaxAlgo so a la Komponente mit KI
Nee, sorry. Ist nur eine delphi-spezifische Frage... Steht aber auch so im Titel!
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Min-/Max-Problem mit DateTimePicker / Rundung von Datum

  Alt 18. Dez 2004, 16:21
Hab jetzt eine Lösung, wie ich diesen TDate-Wert auf einen reinen Datumswert bringe:

datum := StrToDate(DateToStr(datum)); Finde ich aber selbst irgend wie schwachsinnig... Genau wie ein TDate, dass genauso aufgebaut ist wie TDateTime... Aber naja! Wenn jemand eine andere Lösung hat, bitte melden!
  Mit Zitat antworten Zitat
Urmel

Registriert seit: 23. Mai 2004
Ort: Titiwu
28 Beiträge
 
#5

Re: Min-/Max-Problem mit DateTimePicker / Rundung von Datum

  Alt 18. Dez 2004, 16:24
Zitat von stoermi:
Hab jetzt eine Lösung, wie ich diesen TDate-Wert auf einen reinen Datumswert bringe:...
Hallo stoermi,

schneide doch einfach den Teil für die Zeit (nachkommastellen) ab.
datum := TRUNC (datum_mit_zeit);
Urmel aus dem Eis
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Min-/Max-Problem mit DateTimePicker / Rundung von Datum

  Alt 18. Dez 2004, 16:43
Zitat von Urmel:
schneide doch einfach den Teil für die Zeit (nachkommastellen) ab.
datum := TRUNC (datum_mit_zeit);
Hi Urmel!

Stimmt, hast recht, das geht auch. An Trunc hab ich mit keiner Silbe gedacht. Aber man weiss ja dann auch nie, ob das auch mit TDate geht. Eigntlich kommt da ja ein Integer raus. Funktioniert aber! Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: Min-/Max-Problem mit DateTimePicker / Rundung von Datum

  Alt 20. Dez 2004, 14:23
Zitat von stoermi:
Aber man weiss ja dann auch nie, ob das auch mit TDate geht. Eigntlich kommt da ja ein Integer raus. Funktioniert aber! Danke!
Richtich! TDateTime ist eigentlich ein Double, bei dem der ganzzahlige Zeil das Datum darstellt, und der Nachkommateil die Uhrzeit. Das blöde, was die meisten Fehler verursacht, ist folgendes: TDate und TTime sind auch nur TDateTime und bei der Vermischung kann es zu Fehlern kommen. Also Trunc(Datum_mit_Zeit) = Datum und Frac(Datum_mit_Zeit) = Zeit... Nur so als Info!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
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 01:43 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