Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datum um xx Tage weiterzählen (https://www.delphipraxis.net/4490-datum-um-xx-tage-weiterzaehlen.html)

n00b_on_knees 1. Mai 2003 15:39


Datum um xx Tage weiterzählen
 
Hi Leute!

Ich hab wiedermal ne kleine Frage.. ich muss ein Prog schreiben das Tag, Monat und Jahr einliest, sowie eine Anzahl an Tagen. Diese Anzahl soll weitergezählt werden.

BSP: Eingabe: Datum 4.6.2003
Eingabe Anzahl: 30
Ausgabe: Name des Tages, + 3.7.2003

Mein Problem liegt hier wie ich nach Monatsende ins neue Monat weiterzählen kann, und wie ich das mit dem Namen des Tages, (also Son, Mo, Di, MI usw.) machen kann. Ich hoffe ihr könnt mir helfen.


mfg n00b on knees

[Edit=Sakura]Titel geändert!!!
Bitte in Zukunft aussagekräftige Titel wählen :warn: [/Edit]

Christian Seehase 1. Mai 2003 16:16

Moin Noob on Knees,

schau Dir dazu doch mal die Funktionen StrToDate und DayOfWeek an.
(bzw. kannst Du auch hier mal danach suchen. Es sollte einige Fundstellen geben)

Sharky 1. Mai 2003 16:16

Re: Datum um xx Tage weiterzählen
 
Zitat:

Zitat von n00b_on_knees
.... sowie eine Anzahl an Tagen. Diese Anzahl soll weitergezählt werden.
...

Hai,

wenn Du das Datum in einer Variablen vom Typ TDateTime hast musst Du zu dieser einfach die Anzahl der Tage addieren.

Zum Thema Wochentag -> DayOfWeek und LongDayNames

n00b_on_knees 1. Mai 2003 16:26

sorry, aber ich hatte vergessen zu erwähnen das wir die datumfunktionen von delphi NICHT dazu verwenden sollen.

Sharky 1. Mai 2003 16:36

Zitat:

Zitat von n00b_on_knees
sorry, aber ich hatte vergessen zu erwähnen das wir die datumfunktionen von delphi NICHT dazu verwenden sollen.

Tja, so leicht sollen die Hausaufgaben ja auch nicht sein :lol:

Da fallen mir als Stichwörter ein:

- Schaltjahres berechnung
- Referenzdatum mit Kenntnis des Wochentages
- Array mit Tagen pro Monat
- Array mit Wochentagen

Der Rest sollte einfach Mathematik sein.

Daniel B 1. Mai 2003 17:02

Hallo,

ich habe es nach Sonstiges verschoben!
Die Sparte Programmieren allgemein ist für andere Sprachen gedacht.

Grüsse, Daniel :hi:

n00b_on_knees 1. Mai 2003 17:17

tja, wenn mathe so einfach wäre xD

Edit: naja, da wird nich wirklich was aus dem Prog... wärst du so freundlich vielleicht nen genaueren lösungsweg zu schreiben?

n00b_on_knees 2. Mai 2003 08:37

also das mit dem schaltjahr is mal klar wie das geht...
hmm dann vielliecht so:

schaltjahr?

ja

array[1]:= 31 T
array[2]:= 28 T

usw.

nein

array[1]:= 31 T
array[2]:= 29 T...

dann vielleicht ein case welches monat es ist, und wenn die anzahl der eingegebenen tage das maximum in dem monat übersteigt wird ein monat dazugezählt? aber wie ist das dann das es wieder beim 1. zum weiterzählen beginnt? und das mit dem Wochentag check ich immernochnich... array hmm ja, aber wie soll man das dann machen?

Sharky 2. Mai 2003 11:23

Also,

Ich würde ersteinmal ein Array machen wo ich die Monatstage reinschreibe.

Delphi-Quellcode:
Monat[1] := 31;
Monat[2] := 28;
.
.
Monat[12] = 31;
Jetzt brauchst Du eine Funktion die dir die anzahl von Tagen zwichen zwei Datumswerten berechnet.

Datum-1 ist ein von dir gewähltes Referenzdatum. Z.B. Samstag, 1.Januar 2000.

Jetzt kannst Du für jedes Datum berechnen wieviele Tage zwichen Datum -1 und dem von dir eingegebenem Datum liegen.
Da Du weisst das der 1. Januar 2000 ein Samstag ist weisst Du auch das alle 7 Tage wieder ein Samstag ist. (Stichwort: DIV und MOD).

Um zu einem Datum x Tage dazu zurechnen musst Du halt nur in einer Schleife solange addieren bis Du zum letzten Tag eines Monats (siehe Array) kommst. Dann erhöst Du den Monat um 1 und setzt den Tag auch auf 1. und weiter geht es in deiner Schleife.

Mehr kann ich auch die Schnelle nicht schreiben.

P.S.: Denk daran -> Nicht alle vier Jahre ist ein Schaltjahr!!


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