<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[großes Problem mit Datum]]></title><description><![CDATA[<p>Hallo zusammen und Schönes Neues Jahr:)</p>
<p>Folgende Aufgabe hab ich zu bewältigen:</p>
<p>Schreiben Sie ein Programm, das von der Benutzerin/dem Benutzer ein Datum in der Schreibweise TT.MM.JJJJ (also z.B. 05.01.2011) erfragt und berechnet, wie viele Tage dieses Datum vor oder nach dem 01.01.2000 liegt. Anschließend soll der zugeh¨orige Wochentag berechnet und ausgegeben werden.</p>
<p>Mein Code sieht bis jetzt so aus:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;iomanip&gt;

using namespace std;

int main()
{
	int tage = 0, monat = 0, jahr = 0;
	int jahrneu, jahrTage, monatneu, tageneu, result;

	cout &lt;&lt; &quot;Bitte geben Sie das Datum im Format TT MM JJJJ (ohne Punkte) ein.&quot; &lt;&lt; endl; 
    cout &lt;&lt; &quot;Das Datum soll zwischen 1901 und 2099 liegen.&quot; &lt;&lt; endl;

	cin &gt;&gt; tage; 

	cout.width(2); cout &lt;&lt; tage &lt;&lt; endl;
	while (cin.width(3)||cin.width(1))
	{
		cout &lt;&lt; &quot;Ungueltige Eingabe, bitte neu starten&quot; &lt;&lt; endl;
	}

	cin &gt;&gt; monat;

	cout.width(2); cout &lt;&lt; monat &lt;&lt; endl;
	while (cin.width(3)||cin.width(1))
	{
		cout &lt;&lt; &quot;Ungueltige Eingabe, bitte neu starten&quot; &lt;&lt; endl;
		break;
	}

	cin &gt;&gt; jahr;

	cout.width(4); cout &lt;&lt; jahr &lt;&lt; endl;
	while (cin.width(3)||cin.width(2)||cin.width(1))
	{
		cout &lt;&lt; &quot;Ungueltige Eingabe, bitte neu starten&quot; &lt;&lt; endl;
		break;
	}

    if (jahr&lt;1901||jahr&gt;2099)
    {
        cout &lt;&lt; &quot;Falscher Zeitraum&quot; &lt;&lt; endl;
    }

	cout &lt;&lt; &quot;Folgendes Datum wurde eingegeben:\n&quot; &lt;&lt; tage &lt;&lt; &quot;.&quot; &lt;&lt; monat &lt;&lt; &quot;.&quot; &lt;&lt; jahr &lt;&lt; endl;

	switch(monat)
	{
	case 1:
		0;
		break;
	case 2:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29;
		else
			31 + 28;
		break;
	case 3:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31;
		else
			31 + 28 + 31;
		break;
	case 4:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30;
		else
			31 + 28 + 31 + 30;
		break;
	case 5:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31;
		break;
	case 6:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30;
		else
			31 + 28 + 31 + 30 + 31 + 30;
		break;
	case 7:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31;
		break;
	case 8:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31;
		break;
	case 9:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
		break;
	case 10:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
		break;
	case 11:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
		break;
	case 12:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31;
		break;

	default:
		cout &lt;&lt; &quot;Ungueltige Eingabe&quot; &lt;&lt; endl;
	}

	if (jahr &gt; 2000)
	{
		jahrneu = (jahr-1) - 2000;
		jahrTage = jahrneu * 365;

		monatneu = (monat - 1);

	}
	if (jahr &lt; 2000)
	{
		jahrneu = 2000 - (jahr + 1);
		jahrTage = jahrneu * 365;

		monatneu = 12 - (monat + 1);

		tageneu = monat - tage;
	}

	result = tageneu + monatneu + jahrneu;

	cout &lt;&lt; result &lt;&lt; endl;

	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<p>Ich verzweifle an der Formatierung des eingegebenen Datums. Es soll genau im Format TT MM JJJJ eingegeben werden, ansonsten soll eine Fehlermeldung erscheinen, aber irgendwie haut das nicht so recht hin.</p>
<p>Ich bin mir bewusst, dass der Code umständlich ist, bin noch Anfänger:)<br />
Danke<br />
v</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279712/großes-problem-mit-datum</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 11:09:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279712.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Jan 2011 13:24:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to großes Problem mit Datum on Sun, 02 Jan 2011 13:47:40 GMT]]></title><description><![CDATA[<p>Hallo zusammen und Schönes Neues Jahr:)</p>
<p>Folgende Aufgabe hab ich zu bewältigen:</p>
<p>Schreiben Sie ein Programm, das von der Benutzerin/dem Benutzer ein Datum in der Schreibweise TT.MM.JJJJ (also z.B. 05.01.2011) erfragt und berechnet, wie viele Tage dieses Datum vor oder nach dem 01.01.2000 liegt. Anschließend soll der zugeh¨orige Wochentag berechnet und ausgegeben werden.</p>
<p>Mein Code sieht bis jetzt so aus:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;iomanip&gt;

using namespace std;

int main()
{
	int tage = 0, monat = 0, jahr = 0;
	int jahrneu, jahrTage, monatneu, tageneu, result;

	cout &lt;&lt; &quot;Bitte geben Sie das Datum im Format TT MM JJJJ (ohne Punkte) ein.&quot; &lt;&lt; endl; 
    cout &lt;&lt; &quot;Das Datum soll zwischen 1901 und 2099 liegen.&quot; &lt;&lt; endl;

	cin &gt;&gt; tage; 

	cout.width(2); cout &lt;&lt; tage &lt;&lt; endl;
	while (cin.width(3)||cin.width(1))
	{
		cout &lt;&lt; &quot;Ungueltige Eingabe, bitte neu starten&quot; &lt;&lt; endl;
	}

	cin &gt;&gt; monat;

	cout.width(2); cout &lt;&lt; monat &lt;&lt; endl;
	while (cin.width(3)||cin.width(1))
	{
		cout &lt;&lt; &quot;Ungueltige Eingabe, bitte neu starten&quot; &lt;&lt; endl;
		break;
	}

	cin &gt;&gt; jahr;

	cout.width(4); cout &lt;&lt; jahr &lt;&lt; endl;
	while (cin.width(3)||cin.width(2)||cin.width(1))
	{
		cout &lt;&lt; &quot;Ungueltige Eingabe, bitte neu starten&quot; &lt;&lt; endl;
		break;
	}

    if (jahr&lt;1901||jahr&gt;2099)
    {
        cout &lt;&lt; &quot;Falscher Zeitraum&quot; &lt;&lt; endl;
    }

	cout &lt;&lt; &quot;Folgendes Datum wurde eingegeben:\n&quot; &lt;&lt; tage &lt;&lt; &quot;.&quot; &lt;&lt; monat &lt;&lt; &quot;.&quot; &lt;&lt; jahr &lt;&lt; endl;

	switch(monat)
	{
	case 1:
		0;
		break;
	case 2:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29;
		else
			31 + 28;
		break;
	case 3:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31;
		else
			31 + 28 + 31;
		break;
	case 4:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30;
		else
			31 + 28 + 31 + 30;
		break;
	case 5:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31;
		break;
	case 6:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30;
		else
			31 + 28 + 31 + 30 + 31 + 30;
		break;
	case 7:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31;
		break;
	case 8:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31;
		break;
	case 9:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
		break;
	case 10:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
		break;
	case 11:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
		break;
	case 12:
		if((jahr%4 == 0 &amp;&amp; jahr%100 != 0)||jahr%400 == 0)
			31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31;
		else
			31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31;
		break;

	default:
		cout &lt;&lt; &quot;Ungueltige Eingabe&quot; &lt;&lt; endl;
	}

	if (jahr &gt; 2000)
	{
		jahrneu = (jahr-1) - 2000;
		jahrTage = jahrneu * 365;

		monatneu = (monat - 1);

	}
	if (jahr &lt; 2000)
	{
		jahrneu = 2000 - (jahr + 1);
		jahrTage = jahrneu * 365;

		monatneu = 12 - (monat + 1);

		tageneu = monat - tage;
	}

	result = tageneu + monatneu + jahrneu;

	cout &lt;&lt; result &lt;&lt; endl;

	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<p>Ich verzweifle an der Formatierung des eingegebenen Datums. Es soll genau im Format TT MM JJJJ eingegeben werden, ansonsten soll eine Fehlermeldung erscheinen, aber irgendwie haut das nicht so recht hin.</p>
<p>Ich bin mir bewusst, dass der Code umständlich ist, bin noch Anfänger:)<br />
Danke<br />
v</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001258</guid><dc:creator><![CDATA[vankitz]]></dc:creator><pubDate>Sun, 02 Jan 2011 13:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to großes Problem mit Datum on Sun, 02 Jan 2011 14:15:06 GMT]]></title><description><![CDATA[<p>Du bist im falschen (Sub-)Forum gelandet, dies hier ist C++/CLI. Du hast aber nativen C++ Code...</p>
<p>Und zu deinem konkreten Problem:<br />
Mittels 'cin.width(3)' setzt du nur das Ausgabeformat.<br />
Um ein konkretes Format abzufragen, müßtest du schon das Datum komplett als 'string' einlesen und dann die einzelnen Werte auslesen (parsen).</p>
<p>Außerdem sind deine Zeilen</p>
<pre><code class="language-cpp">31 + 29;
// etc.
</code></pre>
<p>sinnlos, da sie nur etwas berechnen, aber das Ergebnis nirgendwo in einer Variablen gespeichert wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Ich weiß nicht, ob du schon Schleifen (while, for) kennst :), aber dann könntest du deine switch-Anweisung um einiges verkürzen...</p>
<p>Such einfach mal im richtigen C++ Forum nach &quot;Schaltjahr&quot; o.ä., da findest du dann schon entsprechenden Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001289</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 02 Jan 2011 14:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to großes Problem mit Datum on Sun, 02 Jan 2011 19:02:28 GMT]]></title><description><![CDATA[<p>Danke für Deine Antwort:) werd mich mal schlau machen. Bis zum nächsten Mal im richtigen Forumsteil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001410</guid><dc:creator><![CDATA[vankitz]]></dc:creator><pubDate>Sun, 02 Jan 2011 19:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to großes Problem mit Datum on Mon, 03 Jan 2011 09:19:35 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u18363" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001562</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 03 Jan 2011 09:19:35 GMT</pubDate></item></channel></rss>