Zum Inhalt springen

Anzahl Tage seit Datum ermitteln (war: Ich weiß nicht mehr weiter...)


Empfohlene Beiträge

Geschrieben

Hallo!

Ich möchte gerne ein Programm in Visual C++ 2008 erstellen.

Dieses Programm soll, wenn ich ein Datum ab 01.01.1901 eingebe, mir folgendes berechnen:

  • die Anzahl der Tage, die seit diesem Datum vergangen sind (ink. Schaltjahr)
  • den Wochentag dieses Datums

Bitte um schnelle Hilfe!!!

Mfg,

matthias6793

Geschrieben

und wie lauten deine überlegungen bis jetzt?

soll heissen, es wird dir hier keiner eine fertige lösung präsentieren und du solltest schon ansatzweise zeigen, dass du wenigstens gewillt bist, dich selbst ein bisschen anzustrengen.

"dringend", "schnell" und mehrfache ausrufezeichen machen das dann auch nimmer besser.

s'Amstel

Geschrieben

^^

ich bin gewillt dieses Problem zu lösen doch fällt mir nichts wirklich produktives dazu ein!

Also als erstes, hab ich mir gedacht, muss man eine if- Anweisung programmieren, damit man einmal überprüft, ob das Datum überhaupst in den gewünschten Zeitraum ist.

Danach bräuchte man irgendein Schema, nachdem man jedes Datum einen Wochentag zuordnen kann und auch damit man berechnen kann, wie viele Tage vergangen sind.

Bei Google habe ich schon ein paar Websites gesehen, die genau das machen. Doch irgendwelche mathematischen Gleichungen etc. fand ich nicht!!!

Wäre mir schon eine sehr große Hilfe, wenn irgendjemand ein Schema wüsste, das die Bedingungen erfüllt!!!

@ Amstelchen: Zufrieden?

Mfg,

matthias6793

Geschrieben
Also als erstes, hab ich mir gedacht, muss man eine if- Anweisung programmieren, damit man einmal überprüft, ob das Datum überhaupst in den gewünschten Zeitraum ist.

Zuerst einmal solltest Du prüfen, ob die Eingabe überhaupt ein gültiges Datum darstellt, da sonst alles hinfällig ist. (Stichwort: Schaltjahre)

Bei Google habe ich schon ein paar Websites gesehen, die genau das machen. Doch irgendwelche mathematischen Gleichungen etc. fand ich nicht!!!

Wenn man nur fertigen Code sucht wird das auch nichts. Für die Wochentage sollte die Gaußsche Kalenderformel zum Erfolg führen.

Geschrieben
Hallo,

in java gibt es - soweit ich weiß Methoden für diese Aufgabenstellungen - warum also gerade Visual C++ 2008? Handelt es sich etwa um eine Hausaufgabe ;) ?

MFG,

AbdSabour

:D ja tut es.

Doch ich programmiere erst seit kurzem und unser Informatik Lehrer übermittelt uns den Stoff nicht gerade sehr gut!

Ich hoffe mir hilft trotzdem jemand...obwohl es eine Hausaufgabe ist!

Mfg,

matthias6793

Geschrieben
@ Amstelchen: Zufrieden?

es geht mir hier nicht darum, zufriedengestellt zu werden ;)

es geht darum, dass der ansatz der falsche ist. dein/euer lehrer stellt dir/euch eine aufgabe, die augenscheinlich eine stufe über dem liegt, was du/ihr in der schule lernt.

möglicherweise ist das leichter gesagt als getan, aber versuch deinem lehrer zu vermitteln, dass das erklären von grundlagen und vermitteln von lösungsorientiertem denken dem sturen stellen von scheinbar unlösbaren aufgaben zu bevorzugen ist.

solltest du im späteren berufsleben vorankommen wollen, wirst du nicht umhinkommen, selbst lösungen erarbeiten zu müssen. es wird früher oder später keiner hinter dir stehen und dir sagen: "schau, das machst du so"; du wirst - wie auch an deinem aktuellen beispiel ersichtlich - eventuell hören: "ich will dieses und dieses ergebnis, wie du dorthinkommst, ist mir egal". je früher man damit beginnt, sich gedanken darüber zu machen, desto leichter hat man es im endeffekt.

s'Amstel

Geschrieben

Hallo,

hier ist ein kurzes Beispiel in VB.NET in dem der Wert in eine Date-Variable gecastet wird, vieleicht hilft das ja schon.

Dim Datum As Date

Datum = CDate(DasIstDieTextbox.Text)

If Datum > "01.01.1901" Then

MsgBox(DateDiff(DateInterval.Day, CDate("01.01.1901"), Datum))

MsgBox(Datum.DayOfWeek)

End If

Ansonsten hat Amstelchen Recht, selber denken macht schlau ;-)

Schau dir mal die Funktion "datediff" in der VC++ - Onlinehilfe an, da sollte ein gutes Beispiel sein.

Gruss

Boro

Geschrieben

möglicherweise ist das leichter gesagt als getan, aber versuch deinem lehrer zu vermitteln, dass das erklären von grundlagen und vermitteln von lösungsorientiertem denken dem sturen stellen von scheinbar unlösbaren aufgaben zu bevorzugen ist.

Wir sind heute als geschlossene Klasse zu ihm gegangen und haben ihm gesagt, dass wir keine Ahnung haben, wie wir diese Aufgabe bewältigen sollen.

Darauf meinte er nur, dass jeden, der dieses Beispiel nicht lösen kann, keinen Hausverstand hat und dass so etwas bereits Volksschüler ohne Probleme lösen können^^

Aber egal...

Trotzdem Danke für die Hilfen!!!

Und zu dem Thema selbstbefassen: Ich bin gestern ca. 3h vorm PC gesessen und habe Gleichungen gesucht, mit denen man den Wochentag berechnen kann (wie z.B: Gauschße Kalenderformel). Einen Anfang habe ich bereits gemacht und Rest werde ich so gut es geht fertigschreiben.

Geschrieben

also ich würd es so machen (als ablauf...)

1. datum überprüfen

2. array anlegen mit den monaten: bsp. days[12]={31,0,31,30...};

3. schleife zum zählen

3.1. überprüfe ob schlatjahr... wenn ja days[2]=29 wenn nein days[2]=28

3.2. zähle durch bis datum erreicht...

zum überprüfen obs ein schlatjahr ist gibts genug berechnungsbeispiele...

hoffe das hilft dir :D

Geschrieben
also ich würd es so machen (als ablauf...)

1. datum überprüfen

2. array anlegen mit den monaten: bsp. days[12]={31,0,31,30...};

3. schleife zum zählen

3.1. überprüfe ob schlatjahr... wenn ja days[2]=29 wenn nein days[2]=28

3.2. zähle durch bis datum erreicht...

zum überprüfen obs ein schlatjahr ist gibts genug berechnungsbeispiele...

hoffe das hilft dir :D

hallo!

Erstmals Danke für den Vorschlag!

So ähnlich habe ich es bereits gemacht.

Nur statt dem array hab ich eine for- Schleife angelegt, mit der ich mithilfe einer if- Anweisung die Monate überprüfe und dann automatisch die Tage des Monates dazu zähle!

Mfg,

matthias6793

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...