AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datum umwandeln..

Ein Thema von Metallicwar · begonnen am 7. Dez 2010 · letzter Beitrag vom 8. Dez 2010
Antwort Antwort
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

AW: Datum umwandeln..

  Alt 7. Dez 2010, 19:48
Uff ^^
das mit dem Format, peil ich schon nicht...
war auf http://www.delphibasics.co.uk/RTL.asp?Name=Format und hab da nochmal gekuckt, aber dort werden keine Datumsdatentypen aufgelistet ?!?
d = Decimal (integer)
e = Scientific
f = Fixed
g = General
m = Money
n = Number (floating)
p = Pointer
s = String
u = Unsigned decimal
x = Hexadecimal

Also erst die Parameter mit Format füllen (was ich nicht verstehe) ^^ und dann eben diese zwei Parameter über DateToStr und EncodeDate befüllen?!?
Vll nen kleines Beispiel, an dem ich mich orientieren kann?
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
446 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Datum umwandeln..

  Alt 7. Dez 2010, 19:56
Such mal nach FormatDateTime (SysUtils) in Deiner lokalen Hilfe ...
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datum umwandeln..

  Alt 7. Dez 2010, 20:00
Das sind 2 Dinge; Format für Anzeigestrings und der Parameter bei SQL-Abfragen

Delphi-Quellcode:
var
    von, bis: TDate;
...
  von := EcodeDate( jahr, 1, 1);
  bis := EncodeDate ( Jahr, 12, 31);
  ...
  anzeige := 'Von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis);

  qJahresplan.SQL.Text := 'INSERT INTO Jahresplan (Startdatum, Enddatum) VALUES ( :start, :ende)';
  qJahresplan.ParamByName('start').Value := von;
  qJahresplan.ParamByName('end').Value := bis;
  ...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Datum umwandeln..

  Alt 7. Dez 2010, 20:30
Delphi-Quellcode:
SDatumVon := 'von ';
SDatumBis := ' bis ';
Anzeige := SDatumVon + DateToStr(von) + SDatumBis + DateToStr(bis);


SDatum := 'von %s bis %s';
Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]);
So schwer ist ds doch eigentlich nicht?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#5

AW: Datum umwandeln..

  Alt 7. Dez 2010, 22:31
Delphi-Quellcode:
const
  SDatumVon = '01.01.';
  SDatumBis = '31.12.';
procedure TForm1.Button1Click(Sender: TObject);
var
  jahr: Word;
  von, bis: TDate;
  Anzeige: String;
  SDatum: String;
begin
  von := EncodeDate( jahr, 1, 1);
  bis := EncodeDate ( Jahr, 12, 31);

  anzeige := 'Von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis);

  SDatumVon := 'von '; //<-- Der linken Seite kann nichts zugewiesern werden
  SDatumBis := ' bis ';
  Anzeige := SDatumVon + DateToStr(von) + SDatumBis + DateToStr(bis);
  SDatum := 'von %s bis %s';
  Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]);
  ShowMessage(Anzeige);
end;
Als Projektkonstanten hab ich ja schon SDatumVon, SDAtumBis die einen festen Wert haben. Logisch dass diesen Konstanten keine anderen Werte zugeordnet werden können.

Entferne ich diese Projektkonstanten und deklariere sie als einfache Stringvariable

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  jahr: Word;
  von, bis: TDate;
  Anzeige: String;
  SDatum: String;
  sDatumVon, SDatumBis: String;
begin
  von := EncodeDate( jahr, 1, 1); // --> Ungültiges Argument zum Codieren des Datums.
  bis := EncodeDate ( Jahr, 12, 31);

  anzeige := 'Von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis);

  SDatumVon := 'von ';
  SDatumBis := ' bis ';
  Anzeige := SDatumVon + DateToStr(von) + SDatumBis + DateToStr(bis);
  SDatum := 'von %s bis %s';
  Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]);
  ShowMessage(Anzeige);
end;
What am I doing wrong?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Datum umwandeln..

  Alt 7. Dez 2010, 23:01
Zitat:
Ungültiges Argument zum Codieren des Datums
Welchen Wert soll denn "Jahr" dort haben?
Du hast diesem noch garnichts zugewiesen ... da hannst'e froh sein, daß hier rein zufällig ein Wert drinsteht, der eine ungültige Jahreszahl darstellt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Datum umwandeln..

  Alt 8. Dez 2010, 05:22
Eine Konstante ist konstant. Man kann an sie nichts mehr anhängen
Markus Kinzler
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#8

AW: Datum umwandeln..

  Alt 8. Dez 2010, 07:54
Ich Volldepp.

hätte dem jahr schon noch nen genauen Wert zuweisen sollen.
  DecodeDate(now, jahr, monat, tag);
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#9

AW: Datum umwandeln..

  Alt 8. Dez 2010, 09:41
Delphi-Quellcode:
  Anzeige := ' von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis);

  Anzeige := SDatumVon + ' ' + DateToStr(von) + SDatumBis + ' ' + DateToStr(bis);
  SDatum := 'Datum von: %s' + #13#10 + ' bis: %s';

  Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]);
könnte mir bitte nochmal jemand erklären was hier alles geschieht, einiges ist mir noch nicht wirklich klar. Schließlich sollte man den Code vestehen, den man verwendet!!!

Aktueller Stand:
Delphi-Quellcode:
const
  SDatumVon0101 = 'Datum von 01.01.';
  SDatumBis3112 = 'Datum bis 31.12.';
  SDatumVon = 'Datum von';
  SDatumBis = ' bis';

....

procedure TfrmUmwandeln.Button1Click(Sender: TObject);
var
  jahr, monat, tag: Word;
  von, bis: TDate;
  Anzeige: String;
  SDatum: String;
  sDatumVon, SDatumBis: String;
begin
  pnlPrjConst.Visible := True;

  decodedate(now, jahr, monat, tag);
  von := EncodeDate( jahr, 1, 1);
  bis := EncodeDate ( Jahr, 12, 31);

  Anzeige := ' von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis);

  Anzeige := SDatumVon + ' ' + DateToStr(von) + SDatumBis + ' ' + DateToStr(bis);
  SDatum := 'Datum von: %s' + #13#10 + ' bis: %s';

  Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]);

  lbPrjDatumAlt.Caption := SDatumVon0101 + IntToStr(jahr) + #13#10 + ' ' +
                           SDatumBis3112 + IntToStr(jahr);
  lbPrjDatumNeu.Caption := Anzeige;
end;

Nochmals eine Frage, ich kann meine Konstanten SDatumVon0101 uns SDatumBis3112 nicht in ein anderes Format umwandeln, da es Konstanten sind und immer einen festen Wert besitzen, der nicht veränderbar ist? Richtig verstanden?
  Mit Zitat antworten Zitat
Antwort Antwort

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 03:26 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