![]() |
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] |
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) |
Re: Datum um xx Tage weiterzählen
Zitat:
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 |
sorry, aber ich hatte vergessen zu erwähnen das wir die datumfunktionen von delphi NICHT dazu verwenden sollen.
|
Zitat:
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. |
Hallo,
ich habe es nach Sonstiges verschoben! Die Sparte Programmieren allgemein ist für andere Sprachen gedacht. Grüsse, Daniel :hi: |
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? |
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? |
Also,
Ich würde ersteinmal ein Array machen wo ich die Monatstage reinschreibe.
Delphi-Quellcode:
Jetzt brauchst Du eine Funktion die dir die anzahl von Tagen zwichen zwei Datumswerten berechnet.
Monat[1] := 31;
Monat[2] := 28; . . Monat[12] = 31; 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 02:44 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 by Thomas Breitkreuz