Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datumholen plus berechnen (https://www.delphipraxis.net/77242-datumholen-plus-berechnen.html)

Mydoene 16. Sep 2006 19:40


Datumholen plus berechnen
 
Hi Leutz!

Ich wollt mal ein Proggi schreiben :coder: zur Berechnung eines Datums von den Zahlen zum Buchstaben. Und das soll so aussehen:

1. Man gibt das Datum, das man haben will, als int in ein Editfeld ein.
2. Mithilfe einer function und/oder einer procedure (komplizierter sollt's nicht werden) wird das Datum in Buchstaben verwandelt.

Also zum Beispiel: Ich gebe 16 in Edit1 ein, 09 in Edit2 und 2006 in Edit3 und onClickButton1 steht auf Panel1: Samstag.

Nur leider hab' ich keine Ahnung, wie ich das Datum aus'm Rechner holen soll (was ja meißtens das aktuelle Datum ist), und ich weiß auch nicht so richtig, wie ich das verrechnen kann.

Wär' mal ganz froh, wenn mir wer helfen könnt' ^^

Allsdann, warte auf Antwort,

mkinzler 16. Sep 2006 19:42

Re: Datumholen plus berechnen
 
Um was geht es jetzt um aus 16 Sechzehn zu machen oder den Wochentag zu einem datum zu ermitteln?

Basti552 16. Sep 2006 19:46

Re: Datumholen plus berechnen
 
Zitat:

Zitat von mkinzler
Um was geht es jetzt um aus 16 Sechzehn zu machen oder den Wochentag zu einem datum zu ermitteln?

so weit ich das verstanden hab ein Datum in ein Wochentag zu ermitteln!:);)

Mydoene 16. Sep 2006 19:49

Re: Datumholen plus berechnen
 
Zweiteres.

Ich hab' nämlich manchmal das Bedürftnis, zu wissen wann mein oder anderer Leute Geburtstag ist, also:

Welcher Wochentag.

Im Sinne von Montag, Dienstag, Mittwoch etc. K?

[edit:] Oh, uups, sry ^^

mkinzler 16. Sep 2006 19:50

Re: Datumholen plus berechnen
 
DayOfTheWeek();

Mydoene 16. Sep 2006 19:52

Re: Datumholen plus berechnen
 
Und wie benutze ich
Delphi-Quellcode:
DayOfTheWeek();
?

Ich mein, was genau liefert das? Int, string oder wie?

mkinzler 16. Sep 2006 19:54

Re: Datumholen plus berechnen
 
Besitzt du keine Delphi-Hilfe? ;-)

Zitat:

Zitat von Delphi-Hilfe
DayOfTheWeek Routine

Gibt den Wochentag zurück, den ein TDateTime-Wert repräsentiert.

Namespace
Borland.Vcl.DateUtils

Syntax


[Delphi] function DayOfTheWeek(const AValue: TDateTime): Word;


Beschreibung
Mit DayOfTheWeek können Sie den Wochentag ermitteln, den der angegebene TDateTime-Wert repräsentiert. DayOfTheWeek gibt einen Wert zwischen 1 und 7 zurück. 1 entspricht Montag, 7 Sonntag.
Hinweis:
DayOfTheWeek ist ISO 8601-konform (Montag ist der erste Wochentag). Die Funktion DayOfWeek basiert dagegen auf dem Sonntag als erstem Wochentag.

Tipp:
Mithilfe der Wochentagkonstanten können Sie die Aussagekraft des Rückgabewertes verbessern.


Mydoene 16. Sep 2006 19:58

Re: Datumholen plus berechnen
 
OK, das ist ja schon ganz nice, noch ne Frage hätte ich: Wie wandle ich die Edit-Eingaben in TDateTimes um?

Habsch nämlich mal keine Ahnung ... :dance:

mkinzler 16. Sep 2006 20:00

Re: Datumholen plus berechnen
 
EncodeDate() oder nimm gleich eine Komponente, in der man direkt ein datum auswählen kann.

Mydoene 16. Sep 2006 20:02

Re: Datumholen plus berechnen
 
Da fänd' ich encoden aber besser.

Kann mir wiederum einer helfen? -_- Ich hab' keine Ahnung...

mkinzler 16. Sep 2006 20:07

Re: Datumholen plus berechnen
 
Verwende doch mal die Hilfe oder weßt du nicht wie das funktioniert ? :shock:
Zitat:

Zitat von Delphi-Hilfe
EncodeDate Routine

Gibt einen Wert des Typs TDateTime zurück, der einem bestimmten Jahr, Monat und Tag entspricht.

Namespace
Borland.Vcl.SysUtils

Syntax


[Delphi] function EncodeDate(Year: Word; Month: Word; Day: Word): TDateTime;


Beschreibung
EncodeDate gibt einen Wert des Typs TDateTime für die als Parameter angegebenen Werte Year, Month und Day zurück.

Das Jahr muss zwischen 1 und 9999 liegen.

Für Month sind Werte zwischen 1 und 12 zulässig.

Die zulässigen Werte für Day hängen vom Wert der Eigenschaft Month ab (1 bis 28, 29, 30 oder 31). So liegen beispielsweise die möglichen Tageswerte für den Monat 2 (Februar) zwischen 1 und 28 bzw. zwischen 1 und 29, abhängig davon, ob im Parameter Year ein Schaltjahr übergeben wird.

Befindet sich der angegebene Wert nicht innerhalb der oben aufgeführten Bereiche, löst EncodeDate eine EConvertError-Exception ausgelöst.


Mydoene 16. Sep 2006 20:12

Re: Datumholen plus berechnen
 
Klar kenn' ich die Hilfe :spin:

Bin nur grade am Comp meiner Ma, weil ich an meinem Eigenen kein Inet hab ^^

[edit:] Wobei meine Hilfe etwas veraltet zu sein scheint, denn ich hab' da kompliziertere Texte stehn, halb englisch und so...

[edit2:] Und wie kann ich dann zu 'Word' hin konvertieren?

Martin K 16. Sep 2006 21:12

Re: Datumholen plus berechnen
 
Mit Delphi-Referenz durchsuchenFormatDateTime geht es auch:
als Format einfach 'dddd' eingeben.

Das Ergebnis wird dir dann auch gleich als String geliefert!

mkinzler 16. Sep 2006 21:17

Re: Datumholen plus berechnen
 
Zitat:

Das Ergebnis wird dir dann auch gleich als String geliefert!
Er braucht aber ein TDateTime!

Martin K 16. Sep 2006 21:29

Re: Datumholen plus berechnen
 
Ich meinet das Endergebnis:
Zitat:

Zitat von Mydoene
steht auf Panel1: Samstag.

Den TDateTime-Wert bekommt er doch per Delphi-Referenz durchsuchenEncodeDate.

Also so würde ich das dann machen:
Delphi-Quellcode:
Panel1.Caption := FormatDateTime('dddd', EncodeDate(StrToInt(Edit3.Text), StrToInt(Edit2.Text), StrToInt(Edit1.Text)));

Mydoene 17. Sep 2006 09:18

Re: Datumholen plus berechnen
 
Sorry, aber was da vorgeschlagen wurde, funtzt net:

Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: 'Ungültiges Argument zum Codieren des Datums'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

[_]CPU-Fenster \ [OK] \ [Hilfe]
Wieso geht das jetzt nicht? Bitte um Hilfe!

mkinzler 17. Sep 2006 10:30

Re: Datumholen plus berechnen
 
Die Fehlermeldung sagt ja aus das ein ungültiges datum übergeben wurde. Es wäre u.U. besser die eingegebenen Werte zu überprüfen.

Mydoene 17. Sep 2006 10:38

Re: Datumholen plus berechnen
 
Wieso fehlerhaftes Datum? Ich geb in edit1 zum Beispiel 17 ein, in edit2 09 und in edit3 2006. Ist das falsch?

mkinzler 17. Sep 2006 10:41

Re: Datumholen plus berechnen
 
Dann hast du sie vielleicht in der falschen reihenfolge EncodeDate übergeben?

Mydoene 17. Sep 2006 10:44

Re: Datumholen plus berechnen
 
Kommt mir so vor... Ists denn erst Tag dann Monat dann Jahr, oder nach amerikanischem System erst Monat dann Tag dann Jahr??

mkinzler 17. Sep 2006 10:45

Re: Datumholen plus berechnen
 
http://www.delphipraxis.net/internal...=611701#611701

Mydoene 17. Sep 2006 10:50

Re: Datumholen plus berechnen
 
OOOH! UUps, sorry, Leutz ! ^^'' :cat: :oops:

Kann ja mal passieren. Jetzt versuch ich's nochmal. Mal schaun was dabei rauskommt ^^

[edit:] Nee, ich hab's jetzt so gemacht, wie's sein sollte, aber der Error bleibt... Was mach' ich falsch? :cry:

[edit2:] Doch ok. War nur ein anderer kleiner Fehler. Also :close:, bitte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 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