<?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[Datei älter als angegebenes Datum ...?]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich herausfinden, ob eine Datei älter ist als zum Beispiel den 17.05.03 ? ? ?</p>
<p>Danke<br />
DeFeat</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/76318/datei-älter-als-angegebenes-datum</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 21:31:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/76318.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jun 2004 20:04:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Wed, 09 Jun 2004 20:04:14 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich herausfinden, ob eine Datei älter ist als zum Beispiel den 17.05.03 ? ? ?</p>
<p>Danke<br />
DeFeat</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537078</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Wed, 09 Jun 2004 20:04:14 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Wed, 09 Jun 2004 20:05:37 GMT]]></title><description><![CDATA[<p>Wie ich das Erstellungsdatum der Datei herauskriege weiss ich, aber wie kann ich den vergleich machen ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537080</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Wed, 09 Jun 2004 20:05:37 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 09:14:08 GMT]]></title><description><![CDATA[<p>Kann mir denn niemand helfen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537253</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Thu, 10 Jun 2004 09:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 10:46:43 GMT]]></title><description><![CDATA[<p>ich hätte dazu folgende Idee:</p>
<pre><code class="language-cpp">CFileStatus statusA;
	CFileStatus statusB;
	CFile::GetStatus( _T(&quot;myfileA.txt&quot;), statusA );
	CFile::GetStatus( _T(&quot;myfileB.txt&quot;), statusB );
	if (statusA.m_ctime &lt; statusB.m_ctime)
		AfxMessageBox(_T(&quot;Datei A ist älter als B&quot;));
</code></pre>
<p>Gruß T. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/537322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537322</guid><dc:creator><![CDATA[Theo]]></dc:creator><pubDate>Thu, 10 Jun 2004 10:46:43 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 13:11:41 GMT]]></title><description><![CDATA[<p>Danke Theo, aber irgendetwas stimmt bei meinem jetzigen Code nicht :</p>
<pre><code>CFileStatus status;
	CTime m_ctime;
	CString Pfad = &quot;C:\\test.txt&quot;;
	CString Date = &quot;13.05.03&quot;;

	if(CFile::GetStatus ( Pfad, status ))
	{
		if(status.m_ctime.Format(&quot;%d.%m.%y&quot;) &lt; Date)
		{
			AfxMessageBox(&quot;Datei ist älter als Date !&quot;);
		}
		else
		{
			AfxMessageBox(&quot;Datei ist nicht älter als Date !&quot;);
		}
	}
</code></pre>
<p>Er gibt immer aus das die Datei test.txt älter ist als den 13.05.03 ist... dabei ist sie neu von mir erstellt ... ??? Woran liegt das ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537438</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Thu, 10 Jun 2004 13:11:41 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 13:46:23 GMT]]></title><description><![CDATA[<p>Warte einfach noch bis Sonntag, dann wird es funktionieren...<br />
...für zweieinhalb Wochen...</p>
<p>Du vergleichst da zwei CStrings mit &quot;kleiner als&quot;. Für den Rechner sind das einfach nur zwei Zeichenketten. Woher soll der wissen, dass da ein Datum drin steht ?<br />
In diesem Fall gibt sich der Rechner die allerbeste Mühe und versucht, die CStrings als Zahlen zu interpretieren. Aus 13.05.03 macht er wahrschinlich 13,05 und aus 10.06.04 10,06 oder so ähnlich.</p>
<p>Wenn du ein Datumsformat hast (z.B. diese Filestatusdingsda) könntest du mit GetYear(), GetMonth() und GetDay() die jeweiligen Zahlenwerte ermitteln. Die sind dann Zahlen (int) und können mit &lt; verglichen werden.</p>
<p>Die Zahlen aus einem CString könntest du mit Left(...), Mid(...) oder Right(...) ermitteln und mit atoi(...) in Zahlen umwandeln. Das ist allerdings ein kleines bischen aufwendig. Da müsstest du ersteinmal die Tage, Monate und Jahre als Zahlen ermitteln und dann vergleichen (erst die Jahre, dann Monate und Tage).</p>
<p>Vielleicht wäre es einfacher, die beiden Daten im Datumsformat (CTime oder besser COleDateTime) zu ermitteln und dann irgendwie zu vergleichen (irgendwie Zeitspanne von A nach B negativ -&gt; B ist jünger oder so...).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537477</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Thu, 10 Jun 2004 13:46:23 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 14:09:34 GMT]]></title><description><![CDATA[<p>Danke, darüber habe ich überhaupt nicht nachgedacht ! Aber würde es trotzdem nicht funktionieren wenn ich mit CTime das Systemdatum auslese und dann den Vergleich machen würde ? Dann sind ja bei Daten vom Typ CTime ... und nicht CString etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537492</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Thu, 10 Jun 2004 14:09:34 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 14:13:35 GMT]]></title><description><![CDATA[<p>Ja es funtzt ! Wenn man es so schreibt geht es :</p>
<pre><code>CTime time = CTime::GetCurrentTime(); 
	CString Time;
	Time = time.Format(&quot;%H:%M:%S&quot;); 

	CFileStatus status; 
    CTime m_ctime; 
    CString Pfad = &quot;C:\\test.txt&quot;; 

    if(CFile::GetStatus ( Pfad, status )) 
    { 
        if(status.m_ctime.Format(&quot;%H:%M:%S&quot;) &lt; Time) 
        { 
            AfxMessageBox(&quot;Datei ist älter als Date !&quot;); 
        } 
        else 
        { 
            AfxMessageBox(&quot;Datei ist nicht älter als Date !&quot;); 
        } 
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537496</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Thu, 10 Jun 2004 14:13:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 16:14:01 GMT]]></title><description><![CDATA[<p>Ist ja schön wenn es funktioniert, aber eine Überprüfung, ob die Datei vor Heute erstellt wurde, macht nicht unbedingt viel Sinn. Ich habe jedenfalls (noch) keine, die nach heute erstellt wurde...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537596</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Thu, 10 Jun 2004 16:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Thu, 10 Jun 2004 18:10:05 GMT]]></title><description><![CDATA[<p>Kann man nicht eigentlich das Datum und die Uhrzeit überprüfen ?</p>
<p>Ungefähr so:</p>
<pre><code>CTime time = CTime::GetCurrentTime(); 
    CString Time; 
CString Date;
    Time = time.Format(&quot;%H:%M:%S&quot;);
Date = time.Format(&quot;%d.%m.%y&quot;); 

    CFileStatus status; 
    CTime m_ctime; 
    CString Pfad = &quot;C:\\test.txt&quot;; 

    if(CFile::GetStatus ( Pfad, status )) 
    { 
        if(status.m_ctime.Format(&quot;%H:%M:%S&quot;) &amp;&amp; status.m_ctime.Format(&quot;%d.%m.%y&quot;);  &lt; Time &amp;&amp; Date) 
        { 
            AfxMessageBox(&quot;Datei ist älter !&quot;); 
        } 
        else 
        { 
            AfxMessageBox(&quot;Datei ist nicht älter !&quot;); 
        } 
    }
</code></pre>
<p>Wäre das so zu realisieren ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537657</guid><dc:creator><![CDATA[DeFeat]]></dc:creator><pubDate>Thu, 10 Jun 2004 18:10:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datei älter als angegebenes Datum ...? on Fri, 11 Jun 2004 09:32:29 GMT]]></title><description><![CDATA[<p>DeFeat schrieb:</p>
<blockquote>
<p>Wäre das so zu realisieren ?</p>
</blockquote>
<p>Nö.</p>
<ol>
<li>Das der Vergleich mit heute wenig Sinn macht, habe ich ja oben schon mal geschrieben.</li>
<li>Du vergleichst immernoch CStrings mit &quot;&lt;&quot; (öhm, könnte auch sein, dass durch die Verknüpfung mit &amp;&amp; irgendwelche boolschen Werte verglichen werden aber ist ja jetzt auch nicht weiter wichtig).</li>
<li>Deine Variable Time ist ein CString und ebenso die Variable Date. Durch die Verknüpfung mit &amp;&amp; wird daraus noch lange nicht ein Ausdruck, der Datum und Zeit beinhaltet. Das ginge mit + aber dann ist es immernoch ein CString, also eine Zeichenkette, und kein &quot;Zeitpunkt&quot;, den man mit einem anderen Zeitpunkt vergleichen kann.</li>
<li>status.m_ctime.Format(&quot;%H:%M:%S&quot;) &lt;- durch &quot;Format&quot; ist das übrigens auch ein CString</li>
</ol>
<pre><code class="language-cpp">// Fall 1: Zeitpunkte vergleichen im Datumsformat:

CTime time1(2002, 3, 15, 0, 0, 0);	// 15.03.2002
CTime time2(2003, 4, 16, 0, 0, 0);	// 16.04.2003

if(time1 &lt; time2)
	AfxMessageBox(&quot;Das Datum in time1 ist jünger als das Datum in time2&quot;);
else
	AfxMessageBox(&quot;Das Datum in time1 ist älter als das Datum in time2&quot;);

// Yo, prima. Das klappt, weil das Format CTime die Zeit speichert als &quot;vergangene Sekunden seit 01.01.1970&quot;.
// In dem obigen Fall ist time1 gleich 1016146800 und time2 1050444000, der Vergleich mit &lt; funktioniert.

// Fall 2: Zeitpunkte vergleichen im CStringformat:

CString Time1 = &quot;15.03.2002&quot;;
CString Time2 = &quot;16.04.2003&quot;;

// if(time1 &lt; time2) wird hier nicht funktionieren, da, wie bereits erwähnt, der Rechner
// keine Ahnung hat, das diese Zeichenketten ein Datum darstellen. Statt dessen wird er
// bei diesem Vergleich mit &lt; irgendwelche entsprechenden ASCII-Werte oder sonstige
// Zahlenwerte, die diesen Zeichenketten entsprechen, vergleichen.
// Um &lt; zu benutzen, müssen also die Zeichenketten in Zahlen umgewandelt werden, oder man
// extrahiert Tag, Monat und Jahr als CString und vergleicht diese. Und da
// ein Datum im Dezember nicht zwangsläufig später ist, als ein Datum im Jannuar
// (24.12.1999, 01.01.2000), wird (in diesem Fall) von hinten nach vorne verglichen:

// die Jahre vergleichen:
if(Time1.Right(4) &lt; Time2.Right(4))	// hier werden CString verglichen
	AfxMessageBox(&quot;Das Datum in Time1 ist jünger als das Datum in Time2&quot;);
else
	AfxMessageBox(&quot;Das Datum in Time1 ist älter als das Datum in Time2&quot;);

// OK, das klappt zwar, würde ich sicherheitshalber aber in Zahlen umwandeln:
if(atoi(Time1.Right(4)) &lt; atoi(Time2.Right(4)))	// hier werden Zahlen (int) verglichen
	AfxMessageBox(&quot;Das Datum in Time1 ist jünger als das Datum in Time2&quot;);
else
	AfxMessageBox(&quot;Das Datum in Time1 ist älter als das Datum in Time2&quot;);

// Jetzt fehlt nur noch die weitere Fallunterscheidung:
// wenn die Jahreszahlen gleich sind, muss man die Monate vergleichen und wenn diese
// gleich sind auch noch die Tage. Das muss man dann eben zurecht schnippeln, etwa so:

if(    (atoi(Time1.Right(4)) &lt; atoi(Time2.Right(4)))	// Jahre vergleichen
	|| (atoi(Time1.Right(4)) == atoi(Time2.Right(4)) &amp;&amp; (atoi(Time1.Mid(3, 2)) &lt; atoi(Time2.Mid(3, 2))))) // Monate vergleichen
</code></pre>
<p>Und zu der Frage mit der Uhrzeit:<br />
ist bei Verwendung von CTime ganz einfach, da die Zeit bereits darin enthalten ist.<br />
Bei Verwendung von CString muss die Zeit analog dem Datum aus dem CString heraus geholt werden und ebenso analog verglichen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537931</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Fri, 11 Jun 2004 09:32:29 GMT</pubDate></item></channel></rss>