<?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[Datenstruktur für Kalender]]></title><description><![CDATA[<p>Ich suche eine gute Datenstruktur für einen Kalender mit Timerfunktion (einmalig alarm geben oder jede sekunde/minute/stunde/tag/woche/monat/jahr), mit der ich auch die WinApis benutzen kann.</p>
<p>Leider muss ich bei Strukturen wie time_t alles mögliche wie</p>
<pre><code class="language-cpp">int tm_wday;     /* Tage seit Sonntag (Wochentag) - [0,6] */
   int tm_mday;     /* Tag des Monats - [1,31] */
</code></pre>
<p>ausfüllen, das ich nicht ohne weiteres weiß.</p>
<p>Gibt es nicht eine einfache Struktur, mit der ich nur den Tag, stunde, sekunde, und jahr eingeben muss und bei der ich den wochentag, monat, etc. automatisch kriege? Es ist sehr umständlich alles neu zu berechnen. Oder gibt es da bereits eine gute Lösung?</p>
<p>Es sollte dann auch möglich sein Differenzen der Zeit zu berechnen und die Zeitspanne zu vergrößern (etwa eine Stunde oder einen Tag dazuzuaddieren)</p>
<p>Welche API's und Strukturen sollte ich da am besten verwenden?<br />
Es kann auch eine bereits existierende Klasse sein.</p>
<p>Danke<br />
Listing</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228421/datenstruktur-für-kalender</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 19:22:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228421.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Nov 2008 21:16:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datenstruktur für Kalender on Thu, 27 Nov 2008 21:16:06 GMT]]></title><description><![CDATA[<p>Ich suche eine gute Datenstruktur für einen Kalender mit Timerfunktion (einmalig alarm geben oder jede sekunde/minute/stunde/tag/woche/monat/jahr), mit der ich auch die WinApis benutzen kann.</p>
<p>Leider muss ich bei Strukturen wie time_t alles mögliche wie</p>
<pre><code class="language-cpp">int tm_wday;     /* Tage seit Sonntag (Wochentag) - [0,6] */
   int tm_mday;     /* Tag des Monats - [1,31] */
</code></pre>
<p>ausfüllen, das ich nicht ohne weiteres weiß.</p>
<p>Gibt es nicht eine einfache Struktur, mit der ich nur den Tag, stunde, sekunde, und jahr eingeben muss und bei der ich den wochentag, monat, etc. automatisch kriege? Es ist sehr umständlich alles neu zu berechnen. Oder gibt es da bereits eine gute Lösung?</p>
<p>Es sollte dann auch möglich sein Differenzen der Zeit zu berechnen und die Zeitspanne zu vergrößern (etwa eine Stunde oder einen Tag dazuzuaddieren)</p>
<p>Welche API's und Strukturen sollte ich da am besten verwenden?<br />
Es kann auch eine bereits existierende Klasse sein.</p>
<p>Danke<br />
Listing</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622162</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Thu, 27 Nov 2008 21:16:06 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Thu, 27 Nov 2008 21:48:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du kannst beruhigt sein: Es ist alles schon da und so da, dass Du sehr viel damit anfangen kannst. Diese Funktionen schlummern in der Oleaut32.dll und Du kannst sie nutzen in:</p>
<pre><code class="language-cpp">INT VariantTimeToSystemTime( 
  double  vtime,              
  LPSYSTEMTIME  lpSystemTime  
);
</code></pre>
<p>das Gegenstück dazu:</p>
<pre><code class="language-cpp">INT SystemTimeToVariantTime(
  LPSYSTEMTIME  lpSystemTime,  
  double        *pvtime           
);
</code></pre>
<p>Snipp* ...</p>
<pre><code class="language-cpp">typedef struct _SYSTEMTIME {  
  WORD wYear;  
  WORD wMonth;  
  WORD wDayOfWeek;  
  WORD wDay;  
  WORD wHour;  
  WORD wMinute;  
  WORD wSecond;  
  WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME;
</code></pre>
<p>Noch fragen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Vielleicht den double-Value? Der hat vier Stellen vor dem Komma und vier Stellen nach dem Komma. Die vier Stellen vor dem Komma repräsentieren die Tage nach dem 01.01.1972 bis heute und die vier Nachkommastellen einen Wert von verstrichenen Sekunden seit 00:00:00 Uhr des Tages der Vorkommastelle. wMilliseconds sind Makulatur. Klar das man mit dem Double mathematisches anfangen kann und das Resultat dann immer in korrektem Datum wieder zurückwandelt und Umgekehrt ein Datum zu dem Double-Value.<br />
Genauso wird in VB/VBA Datum gehandelt und Funktionen wie DateDiff und DateAdd zum Beispiel gebaut.</p>
<p>Alternativ kann es die gute alte &quot;time.h&quot;, aber nicht so komfortabel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622170</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Thu, 27 Nov 2008 21:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 06:09:35 GMT]]></title><description><![CDATA[<p>Vielen dank <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622244</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Fri, 28 Nov 2008 06:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 06:09:51 GMT]]></title><description><![CDATA[<p>Diese VariantTime auf dei CStern hinweist wird komplett durch COleDateTime gekapselt und ist sehr flexibel und einfach zu nutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622245</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 28 Nov 2008 06:09:51 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 07:00:12 GMT]]></title><description><![CDATA[<p>Gibt es auch eine Möglichkeit ein Datum bzw. eine Zeit anzugeben und den nächstmöglichen Zeitpunkt (in der Zukunft) zu bekommen an dem das erfüllt ist?</p>
<p>Ich möchte z.B. folgendes machen</p>
<pre><code class="language-cpp">ScheduleUpdates(TYPE_RETRIGGER,DAY_MONDAY, 4 /* Hour */, 31 /* Seconds */);

oder

ScheduleUpdates(TYPE_RETRIGGER,MONTH_JANUARY, DAY_MONDAY, 4 /* Hour */, 31 /* Seconds */);
</code></pre>
<p>Wenn das UpdateEvent dann getriggert wird, will ich die Funktion mit den gleichen Parametern erneut aufrufen, um das nächste event aufzurufen falls der Typ &quot;TYPE_RETRIGGER&quot; ist.</p>
<p>Gruß<br />
Listing</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622257</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Fri, 28 Nov 2008 07:00:12 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 07:47:06 GMT]]></title><description><![CDATA[<p>Mit den arithmetischen Funktionen von COleDateTime/COleDateTimeSpan ist das doch nicht so schwieirg oder? Die Memberfunktionen erlauben Dir auch zusätzlich Zugriff auf Wochentag und KW...</p>
<p>Brutforce<br />
- Inkrementeiere Datum bis Datum stimmt<br />
- Imkrementiere Uhrzeit bios Uhrzeit stimmt</p>
<p>Das Inkrement kann bei Montat und Jahr auch um einen großen Wert vorgesetzt werden (z.b. 28 Tage, 364 Tage).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622267</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 28 Nov 2008 07:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 10:25:03 GMT]]></title><description><![CDATA[<p>Du meinst ich soll den</p>
<pre><code class="language-cpp">double  vtime
</code></pre>
<p>so lange erhöhen, bis der LPSYSTEMTIME struct die gewünschte Zeit anzeigt</p>
<p>Wenn ja hört sich das gut an, auch wenn es ein bisschen resourcenlastiger als das reine Berechnen ist.</p>
<p>Wenn das alles so stimmt hätte ich nurnoch das Problem mit der Zeitzone.<br />
Weil eigentlich brauche ich ja für einen Kalender nicht die Systemzeit sondern die Userzeit oder irre ich mich?</p>
<p>Gruß<br />
Listing</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622344</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Fri, 28 Nov 2008 10:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 13:17:55 GMT]]></title><description><![CDATA[<p>1. Mit COleDateTime ist das doch einfach.<br />
2. Du musst doch nur den Inkrement intelligent wählen. VOn einem Datum:<br />
- Nächste Woche +7<br />
- Nächster Monat, Montag, +28, weiter mit +1 bis Monat sich geändert hat und Montag erreicht wird.</p>
<p>Das ist doch nicht Ressourcen intensiv!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622438</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 28 Nov 2008 13:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 14:31:40 GMT]]></title><description><![CDATA[<p>Jo ok :xmas1:<br />
Hatte mir der Begriff Bruteforce nur suggeriert</p>
<p>Dankeschön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622489</guid><dc:creator><![CDATA[Listing]]></dc:creator><pubDate>Fri, 28 Nov 2008 14:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 16:27:02 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Diese VariantTime auf dei CStern hinweist wird komplett durch COleDateTime gekapselt und ist sehr flexibel und einfach zu nutzen.</p>
</blockquote>
<p>Öhm schon ... aber sind wir hier in MFC-Forum? :xmas2:<br />
Wenn ja, muss ich ja flüchten - ich hasse MFC!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622547</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Fri, 28 Nov 2008 16:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 16:36:22 GMT]]></title><description><![CDATA[<p>CStern schrieb:</p>
<blockquote>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Diese VariantTime auf dei CStern hinweist wird komplett durch COleDateTime gekapselt und ist sehr flexibel und einfach zu nutzen.</p>
</blockquote>
<p>Öhm schon ... aber sind wir hier in MFC-Forum? :xmas2:<br />
Wenn ja, muss ich ja flüchten - ich hasse MFC!</p>
</blockquote>
<p>Prüfe erst was Du behauptest bevor Du es schreibst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>COleDateTime gehört wie CStringT seit VS-2002 zu den offenen gesharten Klassen die auch ATL benutzt und gehört nicht mehr zur MFC. Die Einbindung kann also ohne Nutzung von Extra-Libraries in jeden WinAPI Code erfolgen. CString ist mittlerweile purer Template Code wie std::string...</p>
<p>Warum sollte es also keinen Platz im WinAPI Forum haben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622555</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 28 Nov 2008 16:36:22 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur für Kalender on Fri, 28 Nov 2008 17:37:02 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>CStern schrieb:</p>
<blockquote>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Diese VariantTime auf dei CStern hinweist wird komplett durch COleDateTime gekapselt und ist sehr flexibel und einfach zu nutzen.</p>
</blockquote>
<p>Öhm schon ... aber sind wir hier in MFC-Forum? :xmas2:<br />
Wenn ja, muss ich ja flüchten - ich hasse MFC!</p>
</blockquote>
<p>Prüfe erst was Du behauptest bevor Du es schreibst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>COleDateTime gehört wie CStringT seit VS-2002 zu den offenen gesharten Klassen die auch ATL benutzt und gehört nicht mehr zur MFC. Die Einbindung kann also ohne Nutzung von Extra-Libraries in jeden WinAPI Code erfolgen. CString ist mittlerweile purer Template Code wie std::string...</p>
<p>Warum sollte es also keinen Platz im WinAPI Forum haben?</p>
</blockquote>
<p>Meinetwegen. Ich benutze aber lieber die Klasse ... nicht <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="😉"
    /> Zuviele schlechte Erfahrungen mit MFC.<br />
Dann ist daneben die Win2003SDK schlecht, weil die kennt diese Klasse ja auch nicht,</p>
<p>also: Wenn ich nicht unbedingt MFC und .NET progge: Woher soll ich das wissen?<br />
Außerdem bin ich kein Freund von verkapseltem! Weil die Umwege das wieder rückgängig zu machen langwieriger sind, als die Kapselung selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622565</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Fri, 28 Nov 2008 17:37:02 GMT</pubDate></item></channel></rss>