Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Mit Delphi Alter berechnen (https://www.delphipraxis.net/140718-mit-delphi-alter-berechnen.html)

Funnygirly 24. Sep 2009 14:18


Mit Delphi Alter berechnen
 
Hallo,

ich habe hier eine Aufgabe, komme aber nicht richitg damit zurecht:

-In einem Formular soll man das Alter in einer Edit-Komponente angeben können. Anschließend wird das Alter in Tage,Stunden,Minuten und Sekunden umgerechnet und auf dem Formular ausgegeben.

Kann mit vielleicht jemand dabei helfen wie man das am besten macht?

Ich habe schon mal angefangen, komme aber nicht weiter...in dem Abteil "begin" ist etwas falsch..aber was? was soll ich da anderst machen udn warum?
so sieht es bei mir aus:


Delphi-Quellcode:
unit uAlter;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFrmAlter = class(TForm)
    Label1: TLabel;
    EdtAlter: TEdit;
    Label2: TLabel;
    EdtTage: TEdit;
    EdtStunden: TEdit;
    EdtMinuten: TEdit;
    EdtSekunden: TEdit;
    LblTage: TLabel;
    LblStunden: TLabel;
    LblMinuten: TLabel;
    LblSekunden: TLabel;
    BtnAlter: TButton;
    procedure BtnAlterClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FrmAlter: TFrmAlter;

implementation

{$R *.dfm}

procedure TFrmAlter.BtnAlterClick(Sender: TObject);
var tag,stu,min,sek:integer;
begin

  Tage:=StrToInt(EdtTage.Text)*365;
  Stunden:=StrToInt(EdtStunden.Text)*8760;
  Minuten:=StrToInt(EdtMinuten.Text)*525600;
  Sekunden:=StrToInt(EdtSekunden.Text)*31536000;

  Tage:=IntToStr(EdtTage.Text);
  Stunden:=IntToStr(EdtStunden.Text);
  Minuten:=IntToStr(EdtMinuten.Text);
  Sekunden:=IntToStr(EdtSekunden.Text);

end;

end.
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

mkinzler 24. Sep 2009 14:23

Re: Mit Delphi Alter berechnen
 
Schau dir mal
DateUtils.YearsBetween() an

Funnygirly 24. Sep 2009 14:26

Re: Mit Delphi Alter berechnen
 
ok hab ich, aber mit den beiträgen der anderen kann ich kaum was anfangen, weil die iwie anders aufgebaut sind als meins.

p80286 24. Sep 2009 14:30

Re: Mit Delphi Alter berechnen
 
Du meinst wahrscheinlich
Delphi-Quellcode:
  EdtTage.Text:=IntToStr(Tage;
  EdtStunden.Text):=IntToStr(Stunden;
  EdtMinuten.Text:=IntToStr(Minuten);
  EdtSekunden.Text:=IntToStr(Sekunden);

Gruß
K-H

BAMatze 24. Sep 2009 14:32

Re: Mit Delphi Alter berechnen
 
[quote="Funnygirly"]
Delphi-Quellcode:
  Tage:=IntToStr(EdtTage.Text);
  Stunden:=IntToStr(EdtStunden.Text);
  Minuten:=IntToStr(EdtMinuten.Text);
  Sekunden:=IntToStr(EdtSekunden.Text);
Versucht du hier nicht irgendwie eine Stringvariable auf eine Integer zu packen?
Wenn ich das richtig verstanden habe, dann gibst du ja das Alter in einem Edit in Jahren ein und möchtest dann das Ergebnis in Tagen, Stunden, Minuten, ... in anderen Edits auf Knopfdruck erzeugen.

versuchmal Folgendes:

Delphi-Quellcode:
procedure TFrmAlter.BtnAlterClick(Sender: TObject);
var tag,stu,min,sek:integer;
begin

  {Tage:=StrToInt(EdtTage.Text)*365;
  Stunden:=StrToInt(EdtStunden.Text)*8760;
  Minuten:=StrToInt(EdtMinuten.Text)*525600;
  Sekunden:=StrToInt(EdtSekunden.Text)*31536000;}
 
  EdtTage.Text := inttostr(strtoint(EdtJahre.text)*365)));
  EdtStunden.Text := inttostr(strtoint(EdtJahre.text)*8760)));
  EdtMinuten.Text := inttostr(strtoint(EdtJahre.text)*525600)));
  ...
end;

end.
Die Umrechnungsfaktoren beziehen sich nämlich immer auf das Jahr.

MfG
BAMatze

[Edit] Bedenke auch, dass du Schaltjahre IMO noch nicht bedacht hast [/Edit]

ToFaceTeKilla 24. Sep 2009 14:32

Re: Mit Delphi Alter berechnen
 
Ich glaube mkinzler meinte, du sollst dir das mal in der Delphi-Hilfe angucken (in Delphi oben auf Hilfe -> Delphi-Hilfe und dann nach YearsBetween suchen).

Aber ich glaube, dass bringt dir nicht wirklich viel (jedenfalls wenn ich die Aufgabe richtig verstanden habe...).
Ziel ist doch, dass du dein Alter (zb 20 Jahre) in das Feld eingibst und dir das Programm das dann jeweils in die anderen Einheiten (Tage, Stunden usw.) umrechnet oder?

Edit: War wohl einer schneller und der rote Kasten hat Urlaub :roll:

Wolfgang Mix 24. Sep 2009 14:39

Re: Mit Delphi Alter berechnen
 
@funnygirly

Weitere nützliche Informationen gibt es in der OH unter Dateutils oder hier

Gruß

Wolfgang

Funnygirly 24. Sep 2009 14:41

Re: Mit Delphi Alter berechnen
 
ok danke...ich habe es jetzt so umgeändert (die erste zeile):

Delphi-Quellcode:
EdtTage:=StrToInt(EdtAlter.Text)*365;
Jetzt gibt er diesen Fehler an: [Fehler] uAlter.pas(41): Inkompatible Typen: 'TEdit' und 'Integer'

@ ToFaceTeKilla: Ja stimmt.

BAMatze 24. Sep 2009 14:45

Re: Mit Delphi Alter berechnen
 
Zitat:

Zitat von Funnygirly
ok danke...ich habe es jetzt so umgeändert (die erste zeile):

Delphi-Quellcode:
EdtTage:=StrToInt(EdtAlter.Text)*365;
Jetzt gibt er diesen Fehler an: [Fehler] uAlter.pas(41): Inkompatible Typen: 'TEdit' und 'Integer'

@ ToFaceTeKilla: Ja stimmt.

EdtTage ist ein TEdit! auf welchem du keinen integer-Wert legen kannst.

Delphi-Quellcode:
EdtTage.Text := inttostr(strtoint(EdtAlter.text)*365)));
MfG

[Edit] EdtJahre -> EdtAlter[/Edit]

Klaus01 24. Sep 2009 14:46

Re: Mit Delphi Alter berechnen
 
Zitat:

Zitat von Funnygirly
ok danke...ich habe es jetzt so umgeändert (die erste zeile):

Delphi-Quellcode:
EdtTage:=StrToInt(EdtAlter.Text)*365;
Jetzt gibt er diesen Fehler an: [Fehler] uAlter.pas(41): Inkompatible Typen: 'TEdit' und 'Integer'

@ ToFaceTeKilla: Ja stimmt.

Delphi-Quellcode:
EdtTage.text:=IntToStr(StrToInt(EdtAlter.Text)*365);
und die Schaltjahre nicht vergessen.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr.
Seite 1 von 2  1 2      

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