Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi - Code Hilfe (https://www.delphipraxis.net/87293-delphi-code-hilfe.html)

fLaSh11 26. Feb 2007 19:09

Re: Delphi - Code Hilfe
 
...schau mal in meinen Beitrag :mrgreen:

Blackheart 26. Feb 2007 19:14

Re: Delphi - Code Hilfe
 
Zitat:

Zitat von shmia
Die Schaltjahrermittlung ist in der VCL schon enthalten.
In der Unit SysUtils gibt es die Funktion IsLeapYear().
Hier der Sourcecode dazu:
Delphi-Quellcode:
function IsLeapYear(Year: Word): Boolean;
begin
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;
Bitte lies dir nochmals die 1. Anwort den Unwissenden durch!
Er hat lang und breit erklärt, wie du deine Fragen stellen sollst, aber mir scheint, das ist noch nicht ganz angekommen.

Delphi-Quellcode:
if IsLeapYear(2007) then Caption:='Schaltjahr'
  else Caption:='Kein Schaltjahr';

ConTaCt 27. Feb 2007 08:28

Re: Delphi - Code Hilfe
 
Zitat:

Zitat von Alexander Roth
Ich hatte keine Lust den PDF runterzuladen, denke aber das es um Ostern und Feiertage geht. So was habe ich acuh schon für die Schule gemacht und openscource ins Netz gestellt, (in Turbo Pascal).

Schau mal hier: http://alexander.freewebspace4all.de....htm#Feiertage

Schaltjahr ist dabei.

PS:@Muhkuh: Neues Avatar


hier funktioniert die Seite, aber keine Datei zum downloaden!^^

ConTaCt 27. Feb 2007 09:12

Re: Delphi - Code Hilfe
 
bräuchte noch eine letzte hilfe!
und zwar!

wenn ich das so schreibe hier!

function IsLeapYear(Year: Word): Boolean;
begin
Result := ((Year mod 19 = 0) or (Year mod 4 = 0) or (Year mod 7 = 0)) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;

kommt dieser Error:
expected END but received FUNCTION at line ...

kann mir einer erklären warum!?

hier finde ich nichts und google spuckt auch nichts aus!
bitte um schnelle hilfe!

xZise 27. Feb 2007 09:41

Re: Delphi - Code Hilfe
 
Du musst die Funktion nicht kopieren, sondern nur verstehen, was du anscheindend nicht tust!
Der Befehl "mod" heißt ausgeschrieben "Modulo" (Siehe Wikipedia).

Und zwar gibt dir Modulo den Rest von zwei Ganzzahlen an.

Das Jahr 2000 nehmen wir als Beispiel:
2000 mod 1000 => 0
Dann mit dem Jahr 2007:
2007 mod 1000 => 7

Und dass musst du nun mit allen Überprüfen.
Das macht man, wenn man ein Neuling ist mit If.
Delphi-Quellcode:
if <Bed> then
begin
  <Anw. 1>;
  <Anw. 2>;
  .
  .
  .
end;
Zu Deutsch:
Code:
Wenn Bedingung (<Bed>) erfüllt, dann
beginne
  Anweisung 1
  Anweisung 2
  .
  .
  .
ende
Zusätzlich kannst du auch mit "else" überprüfen, ob der Fall nicht zutrifft:
Delphi-Quellcode:
if <Bed> then
begin
  <Anw. 1>;
  <Anw. 2>;
  .
  .
  .
end else if <Andere Bed> then
begin
  <Anw. 3>;
  <Anw. 4>;
  .
  .
  .
end;
else
begin
  <Anw. 5>;
  <Anw. 6>;
  .
  .
  .
end;
Zu Deutsch:
Code:
Wenn Bedingung (<Bed>) erfüllt, dann
beginne
  Anweisung 1
  Anweisung 2
  .
  .
  .
ende ansonsten wenn andere Bedingung (<Andere Bed>) erfüllt, dann
beginne
  Anweisung 3
  Anweisung 4
  .
  .
  .
ende ansonsten
beginne
  Anweisung 5
  Anweisung 6
  .
  .
  .
ende
Also musst du zuerst überprüfen, ob der Rest (siehe Modulo) von 1000 gleich 0 ist. Wenn dem so ist, dann ist es ein Schaltjahr... Ansonsten musst du überprüfen ob der Rest von 100 nicht 0 ist, oder der Rest von 4 wieder null ist:
Delphi-Quellcode:
if (<Bed 1>) or (<Bed 2>) then
Logisches Oder
Delphi-Quellcode:
if (<Bed 1>) and (<Bed 2>) then
Logisches Und

Das dürfte erstmal reichen!

PS: Bist du dir sicher, dass du erst 2-3 Tage mit Delphi programmiert hast? Ich würde erstmal so die Grundtechniken lernen. Die DSDT sollte dir da helfen.

ConTaCt 27. Feb 2007 09:44

Re: Delphi - Code Hilfe
 
ja bin ich!

ich hab sonst nur 4 Jahre VB programmiert!^^

aber wenn ich das so programmiere in VB, dann funktioniert!^^

kein plan warum^^

außerdem, die Grundlagen haben wir nicht gemacht^^!
sondern nur was der unterschied zwischen VB und Delphi is

xZise 27. Feb 2007 11:53

Re: Delphi - Code Hilfe
 
Zitat:

Zitat von ConTaCt
ich hab sonst nur 4 Jahre VB programmiert!^^

:oops: OOPs... Entschuldige, dass ich es ggf. ziemlich "Neuling"-artig geschrieben habe :drunken:

Aber ich hoffe, du hast den Zweck verstanden ;)

Du kannst ja zwei Funktionen deklarieren:
Delphi-Quellcode:
function IsLeapYear(AYear : Integer) : Boolean;
function EasterSunday(AYear : Integer) : Integer
In den beiden Funktionen machst du je eine Aufgabe ;) Ist dann ein bisschen getrennter, und kommt nicht durcheinander.

Nun zum "EasterSunnday": Diese Funktion gibt dir "d + e" wieder (da ist es egal, ob März oder April).
Dann kannst du in der "Berechnen"-Methode daraus errechnen, ob es April oder März ist.
Es ist der März, wenn der Rückgabewert + 22 nicht größer als 31 ist. Ansonsten ist es der April! Kleiner Tipp: Speichere den Rückgabewert in einer Variable.

Alexander Roth 27. Feb 2007 15:54

Re: Delphi - Code Hilfe
 
Zitat:

Zitat von ConTaCt
Zitat:

Zitat von Alexander Roth
Ich hatte keine Lust den PDF runterzuladen, denke aber das es um Ostern und Feiertage geht. So was habe ich acuh schon für die Schule gemacht und openscource ins Netz gestellt, (in Turbo Pascal).

Schau mal hier: http://alexander.freewebspace4all.de....htm#Feiertage

Schaltjahr ist dabei.

PS:@Muhkuh: Neues Avatar


hier funktioniert die Seite, aber keine Datei zum downloaden!^^

So ein Mist. Da war doch echt verdammt viele Defekte Links. Ist korrigiert.

Gruß Alexander

ConTaCt 27. Feb 2007 23:06

Re: Delphi - Code Hilfe
 
gg!;)

danke!

sollte ich das LipYear da nicht mit string definieren!??

sry, aber die links funktionieren noch immer nicht! :(

xZise 28. Feb 2007 07:45

Re: Delphi - Code Hilfe
 
Ne ;) Du musst ja nur wissen, ob es ein "LeapYear" ist ;)

Delphi-Quellcode:
if IsLeapYear(...) then
  lblLeapYear.Caption := 'Das Jahr ' + IntToStr(...) + ' ist ein Schaltjahr'
else
  lblLeapYear.Caption := 'Das Jahr ' + IntToStr(...) + ' ist kein Schaltjahr'
Es wäre auch so möglich:
Delphi-Quellcode:
var
  modifier : string;

if IsLeapYear(...) then
  modifier := 'ein'
else
  modifier := 'kein'

lblLeapYear.Caption := 'Das Jahr ' + IntToStr(...) + ' ist ' + modifier + ' Schaltjahr'


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr.
Seite 2 von 2     12   

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